fixed password behaviour for screensaver kit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14096 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -40,6 +40,7 @@ public:
|
|||||||
bool LockEnable() {return fLockEnabled;}
|
bool LockEnable() {return fLockEnabled;}
|
||||||
bigtime_t PasswordTime() {return fPasswordTime;}
|
bigtime_t PasswordTime() {return fPasswordTime;}
|
||||||
const char *Password() { return fPassword.String(); }
|
const char *Password() { return fPassword.String(); }
|
||||||
|
const char *LockMethod() { return fLockMethod.String(); }
|
||||||
bool IsNetworkPassword() {return fIsNetworkPassword;}
|
bool IsNetworkPassword() {return fIsNetworkPassword;}
|
||||||
const char *ModuleName() {return fModuleName.String();}
|
const char *ModuleName() {return fModuleName.String();}
|
||||||
status_t GetState(const char *name, BMessage *stateMsg);
|
status_t GetState(const char *name, BMessage *stateMsg);
|
||||||
@@ -55,7 +56,8 @@ public:
|
|||||||
void SetNeverBlankCorner(arrowDirection in) {fNeverBlankCorner = in;}
|
void SetNeverBlankCorner(arrowDirection in) {fNeverBlankCorner = in;}
|
||||||
void SetLockEnable(bool en) {fLockEnabled = en;}
|
void SetLockEnable(bool en) {fLockEnabled = en;}
|
||||||
void SetPasswordTime(bigtime_t pt) {fPasswordTime = pt;}
|
void SetPasswordTime(bigtime_t pt) {fPasswordTime = pt;}
|
||||||
void SetPassword(char *pw) {fPassword = pw;} // Can not set network password from here.
|
void SetPassword(const char *pw) {fPassword = pw;} // Can not set network password from here.
|
||||||
|
void SetLockMethod(const char *method) {fLockMethod = method;}
|
||||||
void SetModuleName(const char *mn) {fModuleName = mn;}
|
void SetModuleName(const char *mn) {fModuleName = mn;}
|
||||||
void SetState(const char *name, BMessage *stateMsg);
|
void SetState(const char *name, BMessage *stateMsg);
|
||||||
void SaveSettings();
|
void SaveSettings();
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ ScreenSaverApp::MessageReceived(BMessage *message)
|
|||||||
bool
|
bool
|
||||||
ScreenSaverApp::QuitRequested()
|
ScreenSaverApp::QuitRequested()
|
||||||
{
|
{
|
||||||
if (system_time()-fBlankTime > fPref.PasswordTime()) {
|
if (fPref.LockEnable() && (system_time()-fBlankTime > fPref.PasswordTime())) {
|
||||||
ShowPW();
|
ShowPW();
|
||||||
return false;
|
return false;
|
||||||
} else
|
} else
|
||||||
|
|||||||
@@ -14,8 +14,9 @@
|
|||||||
#include <Screen.h>
|
#include <Screen.h>
|
||||||
|
|
||||||
|
|
||||||
PasswordWindow::PasswordWindow()
|
PasswordWindow::PasswordWindow(ScreenSaverPrefs &prefs)
|
||||||
: BWindow(BRect(100,100,380,250),"",B_MODAL_WINDOW_LOOK,B_MODAL_APP_WINDOW_FEEL,B_NOT_RESIZABLE)
|
: BWindow(BRect(100,100,380,250),"",B_MODAL_WINDOW_LOOK,B_MODAL_APP_WINDOW_FEEL,B_NOT_RESIZABLE),
|
||||||
|
fPrefs(prefs)
|
||||||
{
|
{
|
||||||
Setup();
|
Setup();
|
||||||
BRect screenFrame = BScreen(B_MAIN_SCREEN_ID).Frame();
|
BRect screenFrame = BScreen(B_MAIN_SCREEN_ID).Frame();
|
||||||
@@ -35,7 +36,6 @@ PasswordWindow::Setup()
|
|||||||
owner->SetViewColor(216,216,216);
|
owner->SetViewColor(216,216,216);
|
||||||
AddChild(owner);
|
AddChild(owner);
|
||||||
fUseNetwork=new BRadioButton(BRect(15,10,160,20),"useNetwork","Use Network password",new BMessage(kButton_changed),B_FOLLOW_NONE);
|
fUseNetwork=new BRadioButton(BRect(15,10,160,20),"useNetwork","Use Network password",new BMessage(kButton_changed),B_FOLLOW_NONE);
|
||||||
fUseNetwork->SetValue(1);
|
|
||||||
owner->AddChild(fUseNetwork);
|
owner->AddChild(fUseNetwork);
|
||||||
fUseCustom=new BRadioButton(BRect(30,50,130,60),"fUseCustom","Use custom password",new BMessage(kButton_changed),B_FOLLOW_NONE);
|
fUseCustom=new BRadioButton(BRect(30,50,130,60),"fUseCustom","Use custom password",new BMessage(kButton_changed),B_FOLLOW_NONE);
|
||||||
|
|
||||||
@@ -65,6 +65,10 @@ PasswordWindow::Setup()
|
|||||||
void
|
void
|
||||||
PasswordWindow::Update()
|
PasswordWindow::Update()
|
||||||
{
|
{
|
||||||
|
if (strcmp(fPrefs.LockMethod(), "custom") == 0)
|
||||||
|
fUseCustom->SetValue(B_CONTROL_ON);
|
||||||
|
else
|
||||||
|
fUseNetwork->SetValue(B_CONTROL_ON);
|
||||||
fUseNetPassword=(fUseCustom->Value()>0);
|
fUseNetPassword=(fUseCustom->Value()>0);
|
||||||
fConfirm->SetEnabled(fUseNetPassword);
|
fConfirm->SetEnabled(fUseNetPassword);
|
||||||
fPassword->SetEnabled(fUseNetPassword);
|
fPassword->SetEnabled(fUseNetPassword);
|
||||||
@@ -75,20 +79,21 @@ void
|
|||||||
PasswordWindow::MessageReceived(BMessage *message)
|
PasswordWindow::MessageReceived(BMessage *message)
|
||||||
{
|
{
|
||||||
switch(message->what) {
|
switch(message->what) {
|
||||||
case kDone_clicked:
|
case kDone_clicked:
|
||||||
if (fUseCustom->Value())
|
fPrefs.SetLockMethod(fUseCustom->Value() ? "custom" : "network");
|
||||||
|
if (fUseCustom->Value()) {
|
||||||
if (strcmp(fPassword->Text(),fConfirm->Text())) {
|
if (strcmp(fPassword->Text(),fConfirm->Text())) {
|
||||||
BAlert *alert=new BAlert("noMatch","Passwords don't match. Try again.","OK");
|
BAlert *alert=new BAlert("noMatch","Passwords don't match. Try again.","OK");
|
||||||
alert->Go();
|
alert->Go();
|
||||||
} else {
|
break;
|
||||||
fThePassword=fPassword->Text();
|
}
|
||||||
Hide();
|
fPrefs.SetPassword(crypt(fPassword->Text(), fPassword->Text()));
|
||||||
}
|
} else {
|
||||||
else {
|
fPrefs.SetPassword("");
|
||||||
fPassword->SetText("");
|
}
|
||||||
fConfirm->SetText("");
|
fPassword->SetText("");
|
||||||
Hide();
|
fConfirm->SetText("");
|
||||||
}
|
Hide();
|
||||||
break;
|
break;
|
||||||
case kCancel_clicked:
|
case kCancel_clicked:
|
||||||
fPassword->SetText("");
|
fPassword->SetText("");
|
||||||
@@ -101,23 +106,8 @@ PasswordWindow::MessageReceived(BMessage *message)
|
|||||||
case kShow:
|
case kShow:
|
||||||
Show();
|
Show();
|
||||||
break;
|
break;
|
||||||
case kPopulate:
|
|
||||||
message->ReplaceString("lockpassword", ((fUseNetPassword)?"":fThePassword));
|
|
||||||
message->ReplaceString("lockmethod", (fUseNetPassword?"network":"custom"));
|
|
||||||
message->SendReply(message);
|
|
||||||
break;
|
|
||||||
case kUtilize: {
|
|
||||||
BString temp;
|
|
||||||
message->FindString("lockmethod",&temp);
|
|
||||||
fUseNetPassword=(temp=="custom");
|
|
||||||
if (!fUseNetPassword) {
|
|
||||||
message->FindString("lockpassword",&temp);
|
|
||||||
fThePassword=temp;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
BWindow::MessageReceived(message);
|
BWindow::MessageReceived(message);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,11 +16,12 @@
|
|||||||
#include <TextControl.h>
|
#include <TextControl.h>
|
||||||
#include <Button.h>
|
#include <Button.h>
|
||||||
#include <Constants.h>
|
#include <Constants.h>
|
||||||
|
#include "ScreenSaverPrefs.h"
|
||||||
|
|
||||||
class PasswordWindow : public BWindow
|
class PasswordWindow : public BWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
PasswordWindow();
|
PasswordWindow(ScreenSaverPrefs &prefs);
|
||||||
void Setup();
|
void Setup();
|
||||||
void Update();
|
void Update();
|
||||||
virtual void MessageReceived(BMessage *message);
|
virtual void MessageReceived(BMessage *message);
|
||||||
@@ -32,6 +33,7 @@ class PasswordWindow : public BWindow
|
|||||||
BButton *fCancel,*fDone;
|
BButton *fCancel,*fDone;
|
||||||
BString fThePassword;
|
BString fThePassword;
|
||||||
bool fUseNetPassword;
|
bool fUseNetPassword;
|
||||||
|
ScreenSaverPrefs &fPrefs;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ ScreenSaverWin::SetupForm()
|
|||||||
SetupTab1();
|
SetupTab1();
|
||||||
|
|
||||||
// Create the password editing window
|
// Create the password editing window
|
||||||
fPwWin = new PasswordWindow();
|
fPwWin = new PasswordWindow(fPrefs);
|
||||||
fPwMessenger = new BMessenger(NULL,fPwWin);
|
fPwMessenger = new BMessenger(NULL,fPwWin);
|
||||||
fPwWin->Run();
|
fPwWin->Run();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user