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;}
|
||||
bigtime_t PasswordTime() {return fPasswordTime;}
|
||||
const char *Password() { return fPassword.String(); }
|
||||
const char *LockMethod() { return fLockMethod.String(); }
|
||||
bool IsNetworkPassword() {return fIsNetworkPassword;}
|
||||
const char *ModuleName() {return fModuleName.String();}
|
||||
status_t GetState(const char *name, BMessage *stateMsg);
|
||||
@@ -55,7 +56,8 @@ public:
|
||||
void SetNeverBlankCorner(arrowDirection in) {fNeverBlankCorner = in;}
|
||||
void SetLockEnable(bool en) {fLockEnabled = en;}
|
||||
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 SetState(const char *name, BMessage *stateMsg);
|
||||
void SaveSettings();
|
||||
|
||||
@@ -129,7 +129,7 @@ ScreenSaverApp::MessageReceived(BMessage *message)
|
||||
bool
|
||||
ScreenSaverApp::QuitRequested()
|
||||
{
|
||||
if (system_time()-fBlankTime > fPref.PasswordTime()) {
|
||||
if (fPref.LockEnable() && (system_time()-fBlankTime > fPref.PasswordTime())) {
|
||||
ShowPW();
|
||||
return false;
|
||||
} else
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
#include <Screen.h>
|
||||
|
||||
|
||||
PasswordWindow::PasswordWindow()
|
||||
: BWindow(BRect(100,100,380,250),"",B_MODAL_WINDOW_LOOK,B_MODAL_APP_WINDOW_FEEL,B_NOT_RESIZABLE)
|
||||
PasswordWindow::PasswordWindow(ScreenSaverPrefs &prefs)
|
||||
: BWindow(BRect(100,100,380,250),"",B_MODAL_WINDOW_LOOK,B_MODAL_APP_WINDOW_FEEL,B_NOT_RESIZABLE),
|
||||
fPrefs(prefs)
|
||||
{
|
||||
Setup();
|
||||
BRect screenFrame = BScreen(B_MAIN_SCREEN_ID).Frame();
|
||||
@@ -35,7 +36,6 @@ PasswordWindow::Setup()
|
||||
owner->SetViewColor(216,216,216);
|
||||
AddChild(owner);
|
||||
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);
|
||||
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
|
||||
PasswordWindow::Update()
|
||||
{
|
||||
if (strcmp(fPrefs.LockMethod(), "custom") == 0)
|
||||
fUseCustom->SetValue(B_CONTROL_ON);
|
||||
else
|
||||
fUseNetwork->SetValue(B_CONTROL_ON);
|
||||
fUseNetPassword=(fUseCustom->Value()>0);
|
||||
fConfirm->SetEnabled(fUseNetPassword);
|
||||
fPassword->SetEnabled(fUseNetPassword);
|
||||
@@ -75,20 +79,21 @@ void
|
||||
PasswordWindow::MessageReceived(BMessage *message)
|
||||
{
|
||||
switch(message->what) {
|
||||
case kDone_clicked:
|
||||
if (fUseCustom->Value())
|
||||
case kDone_clicked:
|
||||
fPrefs.SetLockMethod(fUseCustom->Value() ? "custom" : "network");
|
||||
if (fUseCustom->Value()) {
|
||||
if (strcmp(fPassword->Text(),fConfirm->Text())) {
|
||||
BAlert *alert=new BAlert("noMatch","Passwords don't match. Try again.","OK");
|
||||
alert->Go();
|
||||
} else {
|
||||
fThePassword=fPassword->Text();
|
||||
Hide();
|
||||
}
|
||||
else {
|
||||
fPassword->SetText("");
|
||||
fConfirm->SetText("");
|
||||
Hide();
|
||||
}
|
||||
break;
|
||||
}
|
||||
fPrefs.SetPassword(crypt(fPassword->Text(), fPassword->Text()));
|
||||
} else {
|
||||
fPrefs.SetPassword("");
|
||||
}
|
||||
fPassword->SetText("");
|
||||
fConfirm->SetText("");
|
||||
Hide();
|
||||
break;
|
||||
case kCancel_clicked:
|
||||
fPassword->SetText("");
|
||||
@@ -101,23 +106,8 @@ PasswordWindow::MessageReceived(BMessage *message)
|
||||
case kShow:
|
||||
Show();
|
||||
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:
|
||||
BWindow::MessageReceived(message);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
#include <TextControl.h>
|
||||
#include <Button.h>
|
||||
#include <Constants.h>
|
||||
#include "ScreenSaverPrefs.h"
|
||||
|
||||
class PasswordWindow : public BWindow
|
||||
{
|
||||
public:
|
||||
PasswordWindow();
|
||||
PasswordWindow(ScreenSaverPrefs &prefs);
|
||||
void Setup();
|
||||
void Update();
|
||||
virtual void MessageReceived(BMessage *message);
|
||||
@@ -32,6 +33,7 @@ class PasswordWindow : public BWindow
|
||||
BButton *fCancel,*fDone;
|
||||
BString fThePassword;
|
||||
bool fUseNetPassword;
|
||||
ScreenSaverPrefs &fPrefs;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ ScreenSaverWin::SetupForm()
|
||||
SetupTab1();
|
||||
|
||||
// Create the password editing window
|
||||
fPwWin = new PasswordWindow();
|
||||
fPwWin = new PasswordWindow(fPrefs);
|
||||
fPwMessenger = new BMessenger(NULL,fPwWin);
|
||||
fPwWin->Run();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user