diff -Naur kdebase-3.5.8.orig/kicker/applets/lockout/lockout.cpp kdebase-3.5.8/kicker/applets/lockout/lockout.cpp --- kdebase-3.5.8.orig/kicker/applets/lockout/lockout.cpp 2007-10-08 15:58:46.000000000 +0200 +++ kdebase-3.5.8/kicker/applets/lockout/lockout.cpp 2007-11-20 14:13:51.000000000 +0100 @@ -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 QToolButton( this, "lock"); - logoutButton = new QToolButton( this, "logout"); + bAlternateButtonOrder = !conf->readBoolEntry( "OriginalLayout",false ); + + if (bAlternateButtonOrder) { + lockButton = new QToolButton( this, "lock"); + logoutButton = new QToolButton( this, "logout"); + } + else { + logoutButton = new QToolButton( this, "logout"); + lockButton = new QToolButton( this, "lock"); + } lockButton->setBackgroundMode(X11ParentRelative); logoutButton->setBackgroundMode(X11ParentRelative); @@ -212,11 +221,14 @@ popup->insertItem( SmallIcon( "lock" ), i18n("Lock Session"), this, SLOT( lock() ) ); popup->insertSeparator(); + popup->insertItem( i18n( "&Alternate Button Order" ), 90 ); 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" )) @@ -233,11 +245,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" )) @@ -272,6 +287,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.8.orig/kicker/applets/lockout/lockout.h kdebase-3.5.8/kicker/applets/lockout/lockout.h --- kdebase-3.5.8.orig/kicker/applets/lockout/lockout.h 2007-10-08 15:58:46.000000000 +0200 +++ kdebase-3.5.8/kicker/applets/lockout/lockout.h 2007-11-20 14:13:51.000000000 +0100 @@ -35,6 +35,7 @@ void slotLockPrefs(); void slotLogoutPrefs(); + void slotButtonOrder(); void slotTransparent(); void slotIconChanged(); @@ -46,6 +47,7 @@ QBoxLayout *layout; bool bTransparent; + bool bAlternateButtonOrder; }; #endif // LOCKOUT_H