summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2014-05-05 15:08:46 +0900
committerMichele Calgaro <[email protected]>2014-05-05 15:08:46 +0900
commit975f19a704fe395947c209c0fc4c164f3a1de5b6 (patch)
tree80cb0e8f157b4064eaba1a67b218521dbc62fc10 /kdesktop/lock
parent6a31c6a61f47083cde645b1c32f769871ed450b3 (diff)
parent868c510ed63f27464d74b0c5e8f71f765c02f563 (diff)
downloadtdebase-975f19a704fe395947c209c0fc4c164f3a1de5b6.tar.gz
tdebase-975f19a704fe395947c209c0fc4c164f3a1de5b6.zip
Merged code for bug 1584 from local branch
Diffstat (limited to 'kdesktop/lock')
-rw-r--r--kdesktop/lock/lockdlg.cc56
-rw-r--r--kdesktop/lock/lockprocess.cc1
-rw-r--r--kdesktop/lock/main.cc3
3 files changed, 42 insertions, 18 deletions
diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc
index 163a03e43..bfa727678 100644
--- a/kdesktop/lock/lockdlg.cc
+++ b/kdesktop/lock/lockdlg.cc
@@ -66,6 +66,7 @@ extern bool trinity_desktop_lock_autohide_lockdlg;
extern bool trinity_desktop_lock_delay_screensaver_start;
extern bool trinity_desktop_lock_use_system_modal_dialogs;
extern bool trinity_desktop_lock_use_sak;
+extern bool trinity_desktop_lock_hide_cancel_button;
int dialogHideTimeout = 10*1000;
@@ -149,13 +150,19 @@ void PasswordDlg::init(GreeterPluginHandle *plugin)
mNewSessButton = new KPushButton( KGuiItem(i18n("Sw&itch User..."), "fork"), frame );
ok = new KPushButton( i18n("Unl&ock"), frame );
- cancel = new KPushButton( KStdGuiItem::cancel(), frame );
- if (!trinity_desktop_lock_autohide_lockdlg && !trinity_desktop_lock_use_sak) cancel->setEnabled(false);
+ ok->setDefault(true);
+
+ bool show_cancel_button = !trinity_desktop_lock_hide_cancel_button ||
+ trinity_desktop_lock_use_sak ||
+ !trinity_desktop_lock_use_system_modal_dialogs;
+ if (show_cancel_button)
+ cancel = new KPushButton( KStdGuiItem::cancel(), frame );
+ else
+ cancel = NULL;
greet = plugin->info->create( this, 0, this, mLayoutButton, TQString::null,
KGreeterPlugin::Authenticate, KGreeterPlugin::ExUnlock );
-
TQVBoxLayout *unlockDialogLayout = new TQVBoxLayout( this );
unlockDialogLayout->addWidget( frame );
@@ -166,8 +173,9 @@ void PasswordDlg::init(GreeterPluginHandle *plugin)
TQHBoxLayout *layButtons = new TQHBoxLayout( 0, 0, KDialog::spacingHint());
layButtons->addWidget( mNewSessButton );
layButtons->addStretch();
- layButtons->addWidget( ok );
- layButtons->addWidget( cancel );
+ layButtons->addWidget(ok);
+ if (show_cancel_button)
+ layButtons->addWidget(cancel);
if (trinity_desktop_lock_use_system_modal_dialogs) {
KSMModalDialogHeader* theader = new KSMModalDialogHeader( frame );
@@ -202,12 +210,22 @@ void PasswordDlg::init(GreeterPluginHandle *plugin)
frameLayout->addMultiCellLayout( layButtons, 4, 4, 0, 1 );
}
- setTabOrder( ok, cancel );
- setTabOrder( cancel, mNewSessButton );
+ if (show_cancel_button)
+ {
+ setTabOrder( ok, cancel );
+ setTabOrder( cancel, mNewSessButton );
+ }
+ else
+ {
+ setTabOrder( ok, mNewSessButton );
+ }
setTabOrder( mNewSessButton, mLayoutButton );
connect(mLayoutButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(layoutClicked()));
- connect(cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject()));
+ if (show_cancel_button)
+ {
+ connect(cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject()));
+ }
connect(ok, TQT_SIGNAL(clicked()), TQT_SLOT(slotOK()));
connect(mNewSessButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotSwitchUser()));
@@ -257,9 +275,12 @@ PasswordDlg::~PasswordDlg()
void PasswordDlg::reject()
{
- if (trinity_desktop_lock_autohide_lockdlg || trinity_desktop_lock_use_sak)
- TQDialog::reject();
-}
+ if (!trinity_desktop_lock_hide_cancel_button || trinity_desktop_lock_use_sak ||
+ !trinity_desktop_lock_use_system_modal_dialogs || trinity_desktop_lock_autohide_lockdlg)
+ {
+ TQDialog::reject();
+ }
+}
void PasswordDlg::layoutClicked()
{
@@ -310,11 +331,14 @@ void PasswordDlg::timerEvent(TQTimerEvent *ev)
{
if (ev->timerId() == mTimeoutTimerId)
{
- if (trinity_desktop_lock_autohide_lockdlg) {
- reject();
+ if (trinity_desktop_lock_autohide_lockdlg)
+ {
+ // Force dialog rejection regardless of the value of trinity_desktop_lock_hide_cancel_button
+ TQDialog::reject();
}
- else {
- slotActivity();
+ else
+ {
+ slotActivity();
}
}
else if (ev->timerId() == mFailedTimerId)
@@ -325,7 +349,6 @@ void PasswordDlg::timerEvent(TQTimerEvent *ev)
mUnlockingFailed = false;
updateLabel();
ok->setEnabled(true);
- if (trinity_desktop_lock_autohide_lockdlg || trinity_desktop_lock_use_sak) cancel->setEnabled(true);
mNewSessButton->setEnabled( true );
greet->revive();
greet->start();
@@ -440,7 +463,6 @@ void PasswordDlg::reapVerify()
updateLabel();
mFailedTimerId = startTimer(1500);
ok->setEnabled(false);
- cancel->setEnabled(false);
mNewSessButton->setEnabled( false );
return;
case AuthAbort:
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index f7dc1c25a..773a0710a 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -154,6 +154,7 @@ extern bool trinity_desktop_lock_use_system_modal_dialogs;
extern bool trinity_desktop_lock_delay_screensaver_start;
extern bool trinity_desktop_lock_use_sak;
extern bool trinity_desktop_lock_hide_active_windows;
+extern bool trinity_desktop_lock_hide_cancel_button;
extern bool trinity_desktop_lock_forced;
extern bool argb_visual;
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
index c90c2ef6b..2a8a6657d 100644
--- a/kdesktop/lock/main.cc
+++ b/kdesktop/lock/main.cc
@@ -70,7 +70,7 @@ bool trinity_desktop_lock_use_system_modal_dialogs = FALSE;
bool trinity_desktop_lock_delay_screensaver_start = FALSE;
bool trinity_desktop_lock_use_sak = FALSE;
bool trinity_desktop_lock_hide_active_windows = FALSE;
-
+bool trinity_desktop_lock_hide_cancel_button = FALSE;
bool trinity_desktop_lock_forced = FALSE;
bool signalled_forcelock;
@@ -445,6 +445,7 @@ int main( int argc, char **argv )
trinity_desktop_lock_delay_screensaver_start = false; // If trinity_desktop_lock_delay_screensaver_start is true with unmanaged windows, the lock dialog may never appear
}
trinity_desktop_lock_hide_active_windows = KDesktopSettings::hideActiveWindowsFromSaver();
+ trinity_desktop_lock_hide_cancel_button = KDesktopSettings::hideCancelButton();
delete tdmconfig;