diff -Naur kdebase-3.5.10.orig/kicker/applets/lockout/lockout.cpp kdebase-3.5.10/kicker/applets/lockout/lockout.cpp --- kdebase-3.5.10.orig/kicker/applets/lockout/lockout.cpp 2008-08-19 20:16:57.000000000 +0200 +++ kdebase-3.5.10.orig/kicker/applets/lockout/lockout.cpp 2008-09-26 16:17:20.000000000 +0200 @@ -31,6 +31,7 @@ #include #include #include +#include #include @@ -54,7 +55,7 @@ } Lockout::Lockout( const QString& configFile, QWidget *parent, const char *name) - : KPanelApplet( configFile, KPanelApplet::Normal, 0, parent, name ), bTransparent( false ) + : KPanelApplet( configFile, KPanelApplet::Normal, 0, parent, name ), bTransparent( false ), bAlternateButtonOrder( false ) { KConfig *conf = config(); conf->setGroup("lockout"); @@ -71,8 +72,16 @@ layout->setMargin( 0 ); layout->setSpacing( 0 ); - lockButton = new SimpleButton( this, "lock"); - logoutButton = new SimpleButton( this, "logout"); + bAlternateButtonOrder = !conf->readBoolEntry( "OriginalLayout",false ); + + if (bAlternateButtonOrder) { + lockButton = new SimpleButton( this, "lock"); + logoutButton = new SimpleButton( this, "logout"); + } + else { + logoutButton = new SimpleButton( this, "logout"); + lockButton = new SimpleButton( this, "lock"); + } QToolTip::add( lockButton, i18n("Lock the session") ); QToolTip::add( logoutButton, i18n("Log out") ); @@ -203,13 +212,15 @@ popup->insertItem( SmallIcon( "lock" ), i18n("Lock Session"), this, SLOT( lock() ) ); popup->insertSeparator(); - + popup->insertItem( i18n( "&Alternate Button Order" ), 90 ); i18n("&Transparent"); //popup->insertItem( i18n( "&Transparent" ), 100 ); popup->insertItem( SmallIcon( "configure" ), i18n( "&Configure Screen Saver..." ), this, SLOT( slotLockPrefs() ) ); + popup->setItemChecked( 90, bAlternateButtonOrder ); + popup->connectItem(90, this, SLOT( slotButtonOrder() )); //popup->setItemChecked( 100, bTransparent ); //popup->connectItem(100, this, SLOT( slotTransparent() ) ); //if (conf->entryIsImmutable( "Transparent" )) @@ -226,11 +237,14 @@ popup->insertItem( SmallIcon( "exit" ), i18n("&Log Out..."), this, SLOT( logout() ) ); popup->insertSeparator(); + popup->insertItem( i18n( "&Alternate Button Order" ), 90 ); //popup->insertItem( i18n( "&Transparent" ), 100 ); popup->insertItem( SmallIcon( "configure" ), i18n( "&Configure Session Manager..." ), this, SLOT( slotLogoutPrefs() ) ); + popup->setItemChecked( 90, bAlternateButtonOrder ); + popup->connectItem(90, this, SLOT( slotButtonOrder() ) ); //popup->setItemChecked( 100, bTransparent ); //popup->connectItem(100, this, SLOT( slotTransparent() ) ); //if (conf->entryIsImmutable( "Transparent" )) @@ -263,6 +277,27 @@ conf->sync(); } +void Lockout::slotButtonOrder() +{ + QObject* child = children()->getFirst(); + + if (bAlternateButtonOrder) + child = lockButton; + else + child = logoutButton; + + removeChild(child); + insertChild(child); + update(); + + bAlternateButtonOrder = !bAlternateButtonOrder; + + KConfig* conf = config(); + conf->setGroup("lockout"); + conf->writeEntry( "OriginalLayout", !bAlternateButtonOrder ); + conf->sync(); +} + void Lockout::slotLogoutPrefs() { // Run the logout settings. diff -Naur kdebase-3.5.10.orig/kicker/applets/lockout/lockout.h kdebase-3.5.10/kicker/applets/lockout/lockout.h --- kdebase-3.5.10.orig/kicker/applets/lockout/lockout.h 2008-08-19 20:16:57.000000000 +0200 +++ kdebase-3.5.10.orig/kicker/applets/lockout/lockout.h 2008-09-26 16:18:15.000000000 +0200 @@ -36,6 +36,7 @@ void slotLockPrefs(); void slotLogoutPrefs(); + void slotButtonOrder(); void slotTransparent(); void slotIconChanged(); @@ -47,6 +48,7 @@ QBoxLayout *layout; bool bTransparent; + bool bAlternateButtonOrder; }; #endif // LOCKOUT_H