diff options
Diffstat (limited to 'kdm/kfrontend/kgdialog.cpp')
-rw-r--r-- | kdm/kfrontend/kgdialog.cpp | 240 |
1 files changed, 0 insertions, 240 deletions
diff --git a/kdm/kfrontend/kgdialog.cpp b/kdm/kfrontend/kgdialog.cpp deleted file mode 100644 index 667eca8e1..000000000 --- a/kdm/kfrontend/kgdialog.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/* - -Base class for various tdm greeter dialogs - -Copyright (C) 1997, 1998 Steffen Hansen <hansen@kde.org> -Copyright (C) 2000-2004 Oswald Buddenhagen <ossi@kde.org> - - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -*/ - -#include "kgdialog.h" -#include "kgverify.h" -#include "kconsole.h" -#include "tdmshutdown.h" -#include "tdm_greet.h" - -#include <klocale.h> -#include <kiconloader.h> - -#include <tqaccel.h> -#include <tqlayout.h> -#include <tqpushbutton.h> -#include <tqpopupmenu.h> -#include <tqapplication.h> - -#include <stdlib.h> - -KGDialog::KGDialog( bool themed ) : inherited( 0, !themed ) -{ -#ifdef WITH_TDM_XCONSOLE - consoleView = _showLog ? new KConsole( this ) : 0; -#endif - - optMenu = 0; - verify = 0; -} - -void -#ifdef XDMCP -KGDialog::completeMenu( int _switchIf, int _switchCode, const TQString &_switchMsg, int _switchAccel ) -#else -KGDialog::completeMenu() -#endif -{ -#ifdef HAVE_VTS - if (_isLocal) { - dpyMenu = new TQPopupMenu( this ); - int id = inserten( i18n("Sw&itch User"), ALT+Key_I, dpyMenu ); - connect( dpyMenu, TQT_SIGNAL(activated( int )), - TQT_SLOT(slotDisplaySelected( int )) ); - connect( dpyMenu, TQT_SIGNAL(aboutToShow()), - TQT_SLOT(slotPopulateDisplays()) ); - TQAccel *accel = new TQAccel( this ); - accel->insertItem( ALT+CTRL+Key_Insert, id ); - connect( accel, TQT_SIGNAL(activated( int )), TQT_SLOT(slotActivateMenu( int )) ); - } -#endif - - if (_allowClose) - inserten( _isLocal ? i18n("R&estart X Server") : i18n("Clos&e Connection"), - ALT+Key_E, TQT_SLOT(slotExit()) ); - -#ifdef XDMCP - if (_isLocal && _loginMode != _switchIf) { - switchCode = _switchCode; - inserten( _switchMsg, _switchAccel, TQT_SLOT(slotSwitch()) ); - } -#endif - - if (_hasConsole) - inserten( i18n("Co&nsole Login"), ALT+Key_N, TQT_SLOT(slotConsole()) ); - - if (_allowShutdown != SHUT_NONE) { - ensureMenu(); - optMenu->insertItem(SmallIconSet( "exit" ), i18n("&Shutdown..."), this, TQT_SLOT(slotShutdown(int)), ALT+Key_S ); - TQAccel *accel = new TQAccel( this ); - accel->insertItem( ALT+CTRL+Key_Delete ); - connect( accel, TQT_SIGNAL(activated( int )), TQT_SLOT(slotShutdown( int )) ); - accel = new TQAccel( this ); - accel->insertItem( SHIFT+ALT+CTRL+Key_PageUp, SHUT_REBOOT ); - connect( accel, TQT_SIGNAL(activated( int )), TQT_SLOT(slotShutdown( int )) ); - accel = new TQAccel( this ); - accel->insertItem( SHIFT+ALT+CTRL+Key_PageDown, SHUT_HALT ); - connect( accel, TQT_SIGNAL(activated( int )), TQT_SLOT(slotShutdown( int )) ); - } -} - -void -KGDialog::ensureMenu() -{ - if (!optMenu) { - optMenu = new TQPopupMenu( this ); - optMenu->setCheckable( false ); - needSep = false; - } else if (needSep) { - optMenu->insertSeparator(); - needSep = false; - } -} - -void -KGDialog::inserten( const TQString& txt, int accel, const char *member ) -{ - ensureMenu(); - optMenu->insertItem( txt, this, member, accel ); -} - -int -KGDialog::inserten( const TQString& txt, int accel, TQPopupMenu *cmnu ) -{ - ensureMenu(); - int id = optMenu->insertItem( txt, cmnu ); - optMenu->setAccel( accel, id ); - optMenu->connectItem( id, this, TQT_SLOT(slotActivateMenu( int )) ); - optMenu->setItemParameter( id, id ); - return id; -} - -void -KGDialog::slotActivateMenu( int id ) -{ - TQPopupMenu *cmnu = optMenu->findItem( id )->popup(); - TQSize sh( cmnu->sizeHint() / 2 ); - cmnu->exec( geometry().center() - TQPoint( sh.width(), sh.height() ) ); -} - -void -KGDialog::slotExit() -{ - if (verify) - verify->abort(); - ::exit( EX_RESERVER_DPY ); -} - -void -KGDialog::slotSwitch() -{ -#ifdef XDMCP - // workaround for Qt bug - TQTimer::singleShot( 0, this, TQT_SLOT(slotReallySwitch()) ); -#endif -} - -void -KGDialog::slotReallySwitch() -{ -#ifdef XDMCP - done( switchCode ); -#endif -} - -void -KGDialog::slotConsole() -{ -#ifdef HAVE_VTS - dpySpec *sess = fetchSessions( 0 ); - if (sess) { - if (verify) - verify->suspend(); - int ret = TDMConfShutdown( -1, sess, SHUT_CONSOLE, 0 ).exec(); - if (verify) - verify->resume(); - disposeSessions( sess ); - if (!ret) - return; - } -#else - if (verify) - verify->abort(); -#endif - GSet( 1 ); - GSendInt( G_Console ); - GSet( 0 ); -} - -void -KGDialog::slotShutdown( int id ) -{ - if (verify) - verify->suspend(); - if (id < 0) { - if (_scheduledSd == SHUT_ALWAYS) - TDMShutdown::scheduleShutdown( this ); - else - TDMSlimShutdown( this ).exec(); - } else - TDMSlimShutdown::externShutdown( id, 0, -1 ); - if (verify) - verify->resume(); -} - -void -KGDialog::slotDisplaySelected( int vt ) -{ -#ifdef HAVE_VTS - GSet( 1 ); - GSendInt( G_Activate ); - GSendInt( vt ); - GSet( 0 ); -#else - (void)vt; -#endif -} - -void -KGDialog::slotPopulateDisplays() -{ -#ifdef HAVE_VTS - dpyMenu->clear(); - dpySpec *sessions = fetchSessions( lstPassive | lstTTY ); - TQString user, loc; - for (dpySpec *sess = sessions; sess; sess = sess->next) { - decodeSess( sess, user, loc ); - int id = dpyMenu->insertItem( - i18n("session (location)", "%1 (%2)").arg( user ).arg( loc ), - sess->vt ? sess->vt : -1 ); - if (!sess->vt) - dpyMenu->setItemEnabled( id, false ); - if (sess->flags & isSelf) - dpyMenu->setItemChecked( id, true ); - } - disposeSessions( sessions ); -#endif -} - -#include "kgdialog.moc" |