diff options
Diffstat (limited to 'kdesktop')
53 files changed, 1462 insertions, 1307 deletions
diff --git a/kdesktop/CMakeLists.txt b/kdesktop/CMakeLists.txt index ff0394f4b..c65986368 100644 --- a/kdesktop/CMakeLists.txt +++ b/kdesktop/CMakeLists.txt @@ -96,9 +96,9 @@ set( ${target}_SRCS tde_add_tdeinit_executable( ${target} AUTOMOC SOURCES ${${target}_SRCS} LINK - pthread kdesktopsettings-static bgnd-static dmctl-static + ${CMAKE_THREAD_LIBS_INIT} kdesktopsettings-static bgnd-static dmctl-static konq-shared tdeutils-shared tdesu-shared ${TDEHW_LIBRARIES} - ${XRENDER_LIBRARIES} ${XCURSOR_LIBRARIES} Xext ${DL_LIBRARIES} + ${XRENDER_LIBRARIES} ${XCURSOR_LIBRARIES} Xext ${CMAKE_DL_LIBS} ${XSS_LIBRARIES} ${DBUS_1_TQT_LIBRARIES} ) diff --git a/kdesktop/DESIGN b/kdesktop/DESIGN index f69ee2198..170a86a75 100644 --- a/kdesktop/DESIGN +++ b/kdesktop/DESIGN @@ -7,6 +7,7 @@ Author : Last modified: 24 Oct 1999 + Overall design of KDesktop : ============================= @@ -14,6 +15,7 @@ KDesktop is the program that handles the desktop icons, the popup menus for the desktop, the mac menubar, and the screensaver system. + Files : ======= @@ -34,6 +36,7 @@ KDesktopIface* : DCOP interface for kdesktop, used by kfmclient lock* : screen saver/locker + Libs used by KDesktop ====================== @@ -41,6 +44,7 @@ tdecore, tdeui, tdefile - usual stuff :) libtdeio - I/O stuff, mimetypes, services, registry libkonq - properties dialog, templates ("new") menu, dir lister, settings + Screensaver =========== @@ -69,6 +73,7 @@ The new background code is in bgrender.cpp and bgmanager.cpp. Some features: * Support for xearth like programs. * Can export a pixmap of the desktop background for pseudo transparency. + Multiple monitors ================= Two monitors showing different things (not a mirror-setup) can be configured @@ -92,3 +97,43 @@ In case of 2 screen (multihead) | | | | desktopGeometry = 3200 x 1200 +----+ +-----+ screenGeometry = 1600 x 1200 (for each monitor) + +Interaction between kdesktop and kdesktop_lock +============================================== +kdesktop and kdesktop_lock interact using POSIX signals to coordinate their activities. +Each time the screensaver or lock is activated and then stopped/unlocked, the current +kdesktop_lock process is terminated and respawned, while kdesktop waits for the new process +to be ready. + +kdesktop to kdesktop_lock communication: + kdesktop uses four signals to request different types of locks. These signals do not activate + the lock/screensaver. Some of the signals can be combined together, for example to request a + lock with blank screen. + + - USR1 : request lock of the screen + - USR2 : request screensaver only, no lock + - WINCH: request lock of the screen using SAK (Secure Attention Key) + - TTIN : request blank screen for saver or lock + + The lock/screensaver is started using a fifth signal. + - TTOU : activate the scrensaver or lock + +kdesktop_lock to kdesktop communication: + kdesktop_lock uses three signals to inform kdesktop of status changes. + + - TTIN: the lock process is ready. This is sent after the process has been created/respawned + - USR2: the lock/screensaver has been activated + - USR1: the lock/screensaver has been unlocked/stopped + +Communication is handled by the screen saver engine defined in 'lockeng.{h,cpp}'. +The engine is split into two parts, the 'SaverEngine' running in the GUI thread and +the 'SaverEngineEventHandler' running in a separate thread and eventloop. +The 'SaverEngine' handles communication with X11, DCOP and DBUS while the +'SaverEngineEventHandler' handles communication with the actual lock process. +Several actions require cooperation of the two parts, so in various methods +there will be inter-thread calls (using timers or by emitting signals) to +trigger the other side remaining logic. +This complex design is necessary to avoid blocking the main GUI application event loop, +which has several tasks to manage and therefore can't affort to wait in a suspended state. +This was previously leading to deadlock when DCOP calls where executed on the secondary +thread/eventloop, for example when changing desktop while the lock process was restarting. diff --git a/kdesktop/KScreensaverIface.h b/kdesktop/KScreensaverIface.h index de5c19f2b..b6434738e 100644 --- a/kdesktop/KScreensaverIface.h +++ b/kdesktop/KScreensaverIface.h @@ -12,11 +12,10 @@ public: KScreensaverIface() : DCOPObject("KScreensaverIface") {} k_dcop: - /** Lock the screen now even if the screensaver does not lock by default. */ + /** Lock the screen now even if the screensaver does not lock by default */ virtual void lock() = 0; - /** Save the screen now. If the user has locking enabled, the screen is - * locked also. */ + /** Start the screensaver now. If the user has locking enabled, the screen is locked also */ virtual void save() = 0; /** Quit the screensaver if it is running */ @@ -29,22 +28,23 @@ k_dcop: * Enable/disable the screensaver * returns true if the action succeeded */ - virtual bool enable( bool e ) = 0; + virtual bool enable(bool e) = 0; /** Is the screen currently blanked? */ virtual bool isBlanked() = 0; - /** Reload the screensaver configuration. */ + /** Reload the screensaver configuration */ virtual void configure() = 0; - /** Only blank the screen (and possibly lock). Do not use a custom - * screen saver in the interest of saving battery. + /** + * Set the screensaver to blank (and possibly lock). + * This method does not actually start the screensaver. */ - virtual void setBlankOnly( bool blankOnly ) = 0; + virtual void setBlankOnly(bool blankOnly) = 0; /*** * @internal - */ + */ virtual void saverLockReady() = 0; }; diff --git a/kdesktop/bgmanager.cpp b/kdesktop/bgmanager.cpp index 7e90e8fca..49cff2c16 100644 --- a/kdesktop/bgmanager.cpp +++ b/kdesktop/bgmanager.cpp @@ -78,7 +78,7 @@ KBackgroundManager::KBackgroundManager(TQWidget *desktop, KWinModule* twinModule m_pDesktop = desktop; if (desktop == 0L) - desktop = TQT_TQWIDGET(TDEApplication::desktop()->screen()); + desktop = TDEApplication::desktop()->screen(); m_Renderer.resize( 1 ); m_Cache.resize( 1 ); @@ -97,40 +97,40 @@ KBackgroundManager::KBackgroundManager(TQWidget *desktop, KWinModule* twinModule m_Cache[i]->hash = 0; m_Cache[i]->exp_from = -1; m_Renderer.insert (i, new KVirtualBGRenderer(i,m_pConfig)); - connect(m_Renderer[i], TQT_SIGNAL(imageDone(int)), TQT_SLOT(slotImageDone(int))); + connect(m_Renderer[i], TQ_SIGNAL(imageDone(int)), TQ_SLOT(slotImageDone(int))); m_Renderer[i]->enableTiling( true ); // optimize } #ifdef COMPOSITE - m_tPixmap = new KPixmap(kapp->desktop()->size()); + m_tPixmap = new KPixmap(tdeApp->desktop()->size()); m_tPixmap->fill(TQColor(0, 0x0)); - connect(myApp, TQT_SIGNAL(cmBackgroundChanged( bool )), - TQT_SLOT(slotCmBackgroundChanged( bool ))); + connect(myApp, TQ_SIGNAL(cmBackgroundChanged( bool )), + TQ_SLOT(slotCmBackgroundChanged( bool ))); #endif configure(); m_pTimer = new TQTimer(this); - connect(m_pTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotTimeout())); + connect(m_pTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotTimeout())); m_pTimer->start( 60000 ); /*CrossFade's config*/ m_crossTimer = new TQTimer(this); - connect(m_crossTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotCrossFadeTimeout())); + connect(m_crossTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotCrossFadeTimeout())); resizingDesktop = true; /*Ends here*/ - connect(m_pKwinmodule, TQT_SIGNAL(currentDesktopChanged(int)), - TQT_SLOT(slotChangeDesktop(int))); - connect(m_pKwinmodule, TQT_SIGNAL(numberOfDesktopsChanged(int)), - TQT_SLOT(slotChangeNumberOfDesktops(int))); - connect(m_pKwinmodule, TQT_SIGNAL(currentDesktopViewportChanged(int, const TQPoint&)), - TQT_SLOT(slotChangeViewport(int, const TQPoint&))); + connect(m_pKwinmodule, TQ_SIGNAL(currentDesktopChanged(int)), + TQ_SLOT(slotChangeDesktop(int))); + connect(m_pKwinmodule, TQ_SIGNAL(numberOfDesktopsChanged(int)), + TQ_SLOT(slotChangeNumberOfDesktops(int))); + connect(m_pKwinmodule, TQ_SIGNAL(currentDesktopViewportChanged(int, const TQPoint&)), + TQ_SLOT(slotChangeViewport(int, const TQPoint&))); #if (TQT_VERSION-0 >= 0x030200) - connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized())); // RANDR support + connect( tdeApp->desktop(), TQ_SIGNAL( resized( int )), TQ_SLOT( desktopResized())); // RANDR support #endif TQSize s(m_pKwinmodule->numberOfViewports(m_pKwinmodule->currentDesktop())); @@ -338,7 +338,7 @@ void KBackgroundManager::slotChangeNumberOfDesktops(int num) m_Cache[i]->hash = 0; m_Cache[i]->exp_from = -1; m_Renderer.insert(i, new KVirtualBGRenderer(i,m_pConfig)); - connect(m_Renderer[i], TQT_SIGNAL(imageDone(int)), TQT_SLOT(slotImageDone(int))); + connect(m_Renderer[i], TQ_SIGNAL(imageDone(int)), TQ_SLOT(slotImageDone(int))); m_Renderer[i]->enableTiling( true ); // optimize } } @@ -542,16 +542,16 @@ void KBackgroundManager::setPixmap(KPixmap *pm, int hash, int desk) if( !root_cleared ) { // clear the root window pixmap set by tdm root_cleared = true; - TQTimer::singleShot( 0, this, TQT_SLOT( clearRoot())); + TQTimer::singleShot( 0, this, TQ_SLOT( clearRoot())); // but make the pixmap visible until m_pDesktop is visible - TQT_TQWIDGET(TDEApplication::desktop()->screen())->setErasePixmap(*ep); - TQT_TQWIDGET(TDEApplication::desktop()->screen())->erase(); + TDEApplication::desktop()->screen()->setErasePixmap(*ep); + TDEApplication::desktop()->screen()->erase(); } } else { - TQT_TQWIDGET(TDEApplication::desktop()->screen())->setErasePixmap(*ep); - TQT_TQWIDGET(TDEApplication::desktop()->screen())->erase(); + TDEApplication::desktop()->screen()->setErasePixmap(*ep); + TDEApplication::desktop()->screen()->erase(); } // and export it via Esetroot-style for gnome/GTK apps to share in the pretties @@ -571,8 +571,8 @@ void KBackgroundManager::setPixmap(KPixmap *pm, int hash, int desk) void KBackgroundManager::clearRoot() { - TQT_TQWIDGET(TDEApplication::desktop()->screen())->setErasePixmap( TQPixmap()); - TQT_TQWIDGET(TDEApplication::desktop()->screen())->erase(); + TDEApplication::desktop()->screen()->setErasePixmap( TQPixmap()); + TDEApplication::desktop()->screen()->erase(); } /* @@ -681,7 +681,7 @@ void KBackgroundManager::slotImageDone(int desk) { m_bBgInitDone = true; emit initDone(); - TQTimer::singleShot( 30000, this, TQT_SLOT( saveImages())); + TQTimer::singleShot( 30000, this, TQ_SLOT( saveImages())); do_cleanup = false; } } @@ -1004,7 +1004,7 @@ void KBackgroundManager::repaintBackground() if (m_pDesktop) m_pDesktop->repaint(); else - TQT_TQWIDGET(TDEApplication::desktop()->screen())->erase(); + TDEApplication::desktop()->screen()->erase(); } void KBackgroundManager::desktopResized() @@ -1026,13 +1026,13 @@ void KBackgroundManager::desktopResized() #ifdef COMPOSITE if (m_tPixmap) delete m_tPixmap; - m_tPixmap = new KPixmap(kapp->desktop()->size()); + m_tPixmap = new KPixmap(tdeApp->desktop()->size()); m_tPixmap->fill(TQColor(0, 0x0)); #endif m_Hash = 0; if( m_pDesktop ) { - m_pDesktop->resize( kapp->desktop()->geometry().size()); + m_pDesktop->resize( tdeApp->desktop()->geometry().size()); if (m_Renderer[effectiveDesktop()]->renderer(0)->usingCrossXml()){ m_Renderer[effectiveDesktop()]->renderer(0)->changeWallpaper(); } diff --git a/kdesktop/bgmanager.h b/kdesktop/bgmanager.h index b852a4adb..d78ebebc3 100644 --- a/kdesktop/bgmanager.h +++ b/kdesktop/bgmanager.h @@ -16,7 +16,7 @@ #include <tqdatetime.h> #include <KBackgroundIface.h> -#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 +#if defined(TQ_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 #define COMPOSITE #endif @@ -54,7 +54,7 @@ class KBackgroundManager : public TQObject, public KBackgroundIface { - Q_OBJECT + TQ_OBJECT public: diff --git a/kdesktop/desktop.cpp b/kdesktop/desktop.cpp index 2732bff08..3ef0e33e7 100644 --- a/kdesktop/desktop.cpp +++ b/kdesktop/desktop.cpp @@ -44,17 +44,17 @@ #include <dcopclient.h> #include <kcursor.h> #include <kdebug.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <kimageio.h> #include <kinputdialog.h> #include <kipc.h> #include <tdelocale.h> #include <tdeio/netaccess.h> -#include <kprocess.h> +#include <tdeprocess.h> #include <tdesycoca.h> #include <tdetempfile.h> #include <tdemessagebox.h> -#include <kglobalaccel.h> +#include <tdeglobalaccel.h> #include <twinmodule.h> #include <krun.h> #include <twin.h> @@ -71,21 +71,21 @@ extern TQCString kdesktop_name, kicker_name, twin_name; KRootWidget::KRootWidget() : TQObject() { - kapp->desktop()->installEventFilter(this); - kapp->desktop()->setAcceptDrops( true ); + tdeApp->desktop()->installEventFilter(this); + tdeApp->desktop()->setAcceptDrops( true ); } bool KRootWidget::eventFilter ( TQObject *, TQEvent * e ) { if (e->type() == TQEvent::MouseButtonPress) { - TQMouseEvent *me = TQT_TQMOUSEEVENT(e); + TQMouseEvent *me = static_cast<TQMouseEvent*>(e); KRootWm::self()->mousePressed( me->globalPos(), me->button() ); return true; } else if (e->type() == TQEvent::Wheel) { - TQWheelEvent *we = TQT_TQWHEELEVENT(e); + TQWheelEvent *we = static_cast<TQWheelEvent*>(e); emit wheelRolled(we->delta()); return true; } @@ -113,7 +113,7 @@ bool KRootWidget::eventFilter ( TQObject *, TQEvent * e ) else if ( e->type() == TQEvent::Drop ) { TQDropEvent* de = static_cast<TQDropEvent*>( e ); - if ( KColorDrag::canDecode( de ) ) + if ( KColorDrag::canDecode( de ) ) emit colorDropEvent( de ); else if ( TQImageDrag::canDecode( de ) ) emit imageDropEvent( de ); @@ -155,17 +155,17 @@ KDesktop::KDesktop( SaverEngine* saver, bool x_root_hack, bool wait_for_kded ) : setCaption( "KDE Desktop"); setAcceptDrops(true); // WStyle_Customize seems to disable that - m_pKwinmodule = new KWinModule( TQT_TQOBJECT(this) ); + m_pKwinmodule = new KWinModule( this ); - kapp->dcopClient()->setNotifications(true); - kapp->dcopClient()->connectDCOPSignal(kicker_name, kicker_name, "desktopIconsAreaChanged(TQRect, int)", + tdeApp->dcopClient()->setNotifications(true); + tdeApp->dcopClient()->connectDCOPSignal(kicker_name, kicker_name, "desktopIconsAreaChanged(TQRect, int)", "KDesktopIface", "desktopIconsAreaChanged(TQRect, int)", false); // Dont repaint on configuration changes during construction m_bInit = true; // It's the child widget that gets the focus, not us - setFocusPolicy( TQ_NoFocus ); + setFocusPolicy( TQWidget::NoFocus ); if ( x_root_hack ) { @@ -184,28 +184,28 @@ KDesktop::KDesktop( SaverEngine* saver, bool x_root_hack, bool wait_for_kded ) : setGeometry( TQApplication::desktop()->geometry() ); lower(); - connect( kapp, TQT_SIGNAL( shutDown() ), - this, TQT_SLOT( slotShutdown() ) ); + connect( tdeApp, TQ_SIGNAL( shutDown() ), + this, TQ_SLOT( slotShutdown() ) ); - connect(kapp, TQT_SIGNAL(settingsChanged(int)), - this, TQT_SLOT(slotSettingsChanged(int))); - kapp->addKipcEventMask(KIPC::SettingsChanged); + connect(tdeApp, TQ_SIGNAL(settingsChanged(int)), + this, TQ_SLOT(slotSettingsChanged(int))); + tdeApp->addKipcEventMask(KIPC::SettingsChanged); - kapp->addKipcEventMask(KIPC::IconChanged); - connect(kapp, TQT_SIGNAL(iconChanged(int)), this, TQT_SLOT(slotIconChanged(int))); + tdeApp->addKipcEventMask(KIPC::IconChanged); + connect(tdeApp, TQ_SIGNAL(iconChanged(int)), this, TQ_SLOT(slotIconChanged(int))); - connect(KSycoca::self(), TQT_SIGNAL(databaseChanged()), - this, TQT_SLOT(slotDatabaseChanged())); + connect(KSycoca::self(), TQ_SIGNAL(databaseChanged()), + this, TQ_SLOT(slotDatabaseChanged())); m_pIconView = 0; m_pRootWidget = 0; bgMgr = 0; initRoot(); - TQTimer::singleShot(0, this, TQT_SLOT( slotStart() )); + TQTimer::singleShot(0, this, TQ_SLOT( slotStart() )); #if (TQT_VERSION-0 >= 0x030200) // XRANDR support - connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized())); + connect( tdeApp->desktop(), TQ_SIGNAL( resized( int )), TQ_SLOT( desktopResized())); #endif } @@ -215,7 +215,7 @@ KDesktop::initRoot() Display *dpy = tqt_xdisplay(); Window root = RootWindow(dpy, kdesktop_screen_number); XDefineCursor(dpy, root, cursor().handle()); - + m_bDesktopEnabled = KDesktopSettings::desktopEnabled(); if ( !m_bDesktopEnabled && !m_pRootWidget ) { @@ -238,21 +238,21 @@ KDesktop::initRoot() XSelectInput(dpy, root, attrs.your_event_mask | ButtonPressMask); m_pRootWidget = new KRootWidget; - connect(m_pRootWidget, TQT_SIGNAL(wheelRolled(int)), this, TQT_SLOT(slotSwitchDesktops(int))); - connect(m_pRootWidget, TQT_SIGNAL(colorDropEvent(TQDropEvent*)), this, TQT_SLOT(handleColorDropEvent(TQDropEvent*)) ); - connect(m_pRootWidget, TQT_SIGNAL(imageDropEvent(TQDropEvent*)), this, TQT_SLOT(handleImageDropEvent(TQDropEvent*)) ); - connect(m_pRootWidget, TQT_SIGNAL(newWallpaper(const KURL&)), this, TQT_SLOT(slotNewWallpaper(const KURL&)) ); + connect(m_pRootWidget, TQ_SIGNAL(wheelRolled(int)), this, TQ_SLOT(slotSwitchDesktops(int))); + connect(m_pRootWidget, TQ_SIGNAL(colorDropEvent(TQDropEvent*)), this, TQ_SLOT(handleColorDropEvent(TQDropEvent*)) ); + connect(m_pRootWidget, TQ_SIGNAL(imageDropEvent(TQDropEvent*)), this, TQ_SLOT(handleImageDropEvent(TQDropEvent*)) ); + connect(m_pRootWidget, TQ_SIGNAL(newWallpaper(const KURL&)), this, TQ_SLOT(slotNewWallpaper(const KURL&)) ); // Geert Jansen: backgroundmanager belongs here // TODO tell KBackgroundManager if we change widget() bgMgr = new KBackgroundManager( m_pIconView, m_pKwinmodule ); bgMgr->setExport(1); - connect( bgMgr, TQT_SIGNAL( initDone()), TQT_SLOT( backgroundInitDone())); + connect( bgMgr, TQ_SIGNAL( initDone()), TQ_SLOT( backgroundInitDone())); if (!m_bInit) { delete KRootWm::self(); KRootWm* krootwm = new KRootWm( m_pSaver, this ); // handler for root menu (used by kdesktop on RMB click) - keys->setSlot("Lock Session", krootwm, TQT_SLOT(slotLock())); + keys->setSlot("Lock Session", krootwm, TQ_SLOT(slotLock())); keys->updateConnections(); } } @@ -263,24 +263,24 @@ KDesktop::initRoot() delete m_pRootWidget; m_pRootWidget = 0; m_pIconView = new KDIconView( this, 0 ); - connect( m_pIconView, TQT_SIGNAL( imageDropEvent( TQDropEvent * ) ), - this, TQT_SLOT( handleImageDropEvent( TQDropEvent * ) ) ); - connect( m_pIconView, TQT_SIGNAL( colorDropEvent( TQDropEvent * ) ), - this, TQT_SLOT( handleColorDropEvent( TQDropEvent * ) ) ); - connect( m_pIconView, TQT_SIGNAL( newWallpaper( const KURL & ) ), - this, TQT_SLOT( slotNewWallpaper( const KURL & ) ) ); - connect( m_pIconView, TQT_SIGNAL( wheelRolled( int ) ), - this, TQT_SLOT( slotSwitchDesktops( int ) ) ); - - // All the QScrollView/QWidget-specific stuff should go here, so that we can use + connect( m_pIconView, TQ_SIGNAL( imageDropEvent( TQDropEvent * ) ), + this, TQ_SLOT( handleImageDropEvent( TQDropEvent * ) ) ); + connect( m_pIconView, TQ_SIGNAL( colorDropEvent( TQDropEvent * ) ), + this, TQ_SLOT( handleColorDropEvent( TQDropEvent * ) ) ); + connect( m_pIconView, TQ_SIGNAL( newWallpaper( const KURL & ) ), + this, TQ_SLOT( slotNewWallpaper( const KURL & ) ) ); + connect( m_pIconView, TQ_SIGNAL( wheelRolled( int ) ), + this, TQ_SLOT( slotSwitchDesktops( int ) ) ); + + // All the QScrollView/TQWidget-specific stuff should go here, so that we can use // another qscrollview/widget instead of the iconview and use the same code m_pIconView->setVScrollBarMode( TQScrollView::AlwaysOff ); m_pIconView->setHScrollBarMode( TQScrollView::AlwaysOff ); m_pIconView->setDragAutoScroll( false ); m_pIconView->setFrameStyle( TQFrame::NoFrame ); m_pIconView->viewport()->setBackgroundMode( X11ParentRelative ); - m_pIconView->setFocusPolicy( TQ_StrongFocus ); - m_pIconView->viewport()->setFocusPolicy( TQ_StrongFocus ); + m_pIconView->setFocusPolicy( TQWidget::StrongFocus ); + m_pIconView->viewport()->setFocusPolicy( TQWidget::StrongFocus ); m_pIconView->setGeometry( geometry() ); m_pIconView->show(); @@ -288,7 +288,7 @@ KDesktop::initRoot() // TODO tell KBackgroundManager if we change widget() bgMgr = new KBackgroundManager( m_pIconView, m_pKwinmodule ); bgMgr->setExport(1); - connect( bgMgr, TQT_SIGNAL( initDone()), TQT_SLOT( backgroundInitDone())); + connect( bgMgr, TQ_SIGNAL( initDone()), TQ_SLOT( backgroundInitDone())); // make sure it is initialized before we first call updateWorkArea() m_pIconView->initConfig( m_bInit ); @@ -301,7 +301,7 @@ KDesktop::initRoot() TQCString replyType; TQRect area; - if ( kapp->dcopClient()->call(kicker_name, kicker_name, "desktopIconsArea(int)", + if ( tdeApp->dcopClient()->call(kicker_name, kicker_name, "desktopIconsArea(int)", data, replyType, result, false, 2000) ) { TQDataStream res(result, IO_ReadOnly); @@ -315,7 +315,7 @@ KDesktop::initRoot() // if we failed to get the information from kicker wait a little - probably // this is the KDE startup and kicker is simply not running yet m_waitForKicker = new TQTimer(this); - connect(m_waitForKicker, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotNoKicker())); + connect(m_waitForKicker, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotNoKicker())); m_waitForKicker->start(15000, true); } else // we are not called from the ctor, so kicker should already run @@ -330,7 +330,7 @@ KDesktop::initRoot() m_pIconView->start(); delete KRootWm::self(); KRootWm* krootwm = new KRootWm( m_pSaver, this ); // handler for root menu (used by kdesktop on RMB click) - keys->setSlot("Lock Session", krootwm, TQT_SLOT(slotLock())); + keys->setSlot("Lock Session", krootwm, TQ_SLOT(slotLock())); keys->updateConnections(); } } else { @@ -359,12 +359,12 @@ KDesktop::backgroundInitDone() // avoid flicker if (m_bDesktopEnabled) { - const TQPixmap *bg = TQT_TQWIDGET(TQApplication::desktop()->screen())->backgroundPixmap(); + const TQPixmap *bg = TQApplication::desktop()->screen()->backgroundPixmap(); if ( bg ) m_pIconView->setErasePixmap( *bg ); show(); - kapp->sendPostedEvents(); + tdeApp->sendPostedEvents(); } DCOPRef r( "ksmserver", "ksmserver" ); @@ -396,7 +396,7 @@ KDesktop::slotStart() m_pIconView->start(); // Global keys - keys = new TDEGlobalAccel( TQT_TQOBJECT(this) ); + keys = new TDEGlobalAccel( this ); (void) new KRootWm( m_pSaver, this ); #include "kdesktopbindings.cpp" @@ -404,9 +404,9 @@ KDesktop::slotStart() keys->readSettings(); keys->updateConnections(); - connect(kapp, TQT_SIGNAL(appearanceChanged()), TQT_SLOT(slotConfigure())); + connect(tdeApp, TQ_SIGNAL(appearanceChanged()), TQ_SLOT(slotConfigure())); - TQTimer::singleShot(300, this, TQT_SLOT( slotUpAndRunning() )); + TQTimer::singleShot(300, this, TQ_SLOT( slotUpAndRunning() )); } void @@ -504,7 +504,7 @@ void KDesktop::popupExecuteCommand(const TQString& command) if (m_bInit) return; - if (!kapp->authorize("run_command")) + if (!tdeApp->authorize("run_command")) return; // Created on demand @@ -648,21 +648,21 @@ void KDesktop::setShowDesktop( bool b ) } // on desktop changes or when a window is deiconified, we abort the show desktop mode - connect(twinModule(), TQT_SIGNAL(currentDesktopChanged(int)), - TQT_SLOT(slotCurrentDesktopChanged(int))); - connect(twinModule(), TQT_SIGNAL(windowChanged(WId,unsigned int)), - TQT_SLOT(slotWindowChanged(WId,unsigned int))); - connect(twinModule(), TQT_SIGNAL(windowAdded(WId)), - TQT_SLOT(slotWindowAdded(WId))); + connect(twinModule(), TQ_SIGNAL(currentDesktopChanged(int)), + TQ_SLOT(slotCurrentDesktopChanged(int))); + connect(twinModule(), TQ_SIGNAL(windowChanged(WId,unsigned int)), + TQ_SLOT(slotWindowChanged(WId,unsigned int))); + connect(twinModule(), TQ_SIGNAL(windowAdded(WId)), + TQ_SLOT(slotWindowAdded(WId))); } else { - disconnect(twinModule(), TQT_SIGNAL(currentDesktopChanged(int)), - this, TQT_SLOT(slotCurrentDesktopChanged(int))); - disconnect(twinModule(), TQT_SIGNAL(windowChanged(WId,unsigned int)), - this, TQT_SLOT(slotWindowChanged(WId,unsigned int))); - disconnect(twinModule(), TQT_SIGNAL(windowAdded(WId)), - this, TQT_SLOT(slotWindowAdded(WId))); + disconnect(twinModule(), TQ_SIGNAL(currentDesktopChanged(int)), + this, TQ_SLOT(slotCurrentDesktopChanged(int))); + disconnect(twinModule(), TQ_SIGNAL(windowChanged(WId,unsigned int)), + this, TQ_SLOT(slotWindowChanged(WId,unsigned int))); + disconnect(twinModule(), TQ_SIGNAL(windowAdded(WId)), + this, TQ_SLOT(slotWindowAdded(WId))); for (TQValueVector<WId>::ConstIterator it = m_iconifiedList.begin(); it != m_iconifiedList.end(); @@ -839,7 +839,7 @@ void KDesktop::refresh() m_bNeedRepaint |= 1; updateWorkArea(); #endif - kapp->dcopClient()->send( twin_name, "", "refresh()", TQString("")); + tdeApp->dcopClient()->send( twin_name, "", "refresh()", TQString("")); refreshIcons(); } @@ -851,7 +851,7 @@ void KDesktop::slotSetVRoot() return; if (KWin::windowInfo(winId()).mappingState() == NET::Withdrawn) { - TQTimer::singleShot(100, this, TQT_SLOT(slotSetVRoot())); + TQTimer::singleShot(100, this, TQ_SLOT(slotSetVRoot())); return; } @@ -907,7 +907,7 @@ void KDesktop::desktopIconsAreaChanged(const TQRect &area, int screen) if (screen <= -2) screen = kdesktop_screen_number; else if (screen == -1) - screen = kapp->desktop()->primaryScreen(); + screen = tdeApp->desktop()->primaryScreen(); // This is pretty broken, mixes Xinerama and non-Xinerama multihead // and generally doesn't seem to be required anyway => ignore screen. @@ -1032,7 +1032,7 @@ void KDesktop::logout() void KDesktop::logout( TDEApplication::ShutdownConfirm confirm, TDEApplication::ShutdownType sdtype ) { - if( !kapp->requestShutDown( confirm, sdtype ) ) + if( !tdeApp->requestShutDown( confirm, sdtype ) ) // this i18n string is also in kicker/applets/run/runapplet KMessageBox::error( this, i18n("Could not log out properly.\nThe session manager cannot " "be contacted. You can try to force a shutdown by pressing " @@ -1064,6 +1064,30 @@ void KDesktop::slotRebootNoCnf() TDEApplication::ShutdownTypeReboot ); } +void KDesktop::slotFreeze() +{ + DCOPRef r("ksmserver", "ksmserver"); + r.send("suspend", 1); +} + +void KDesktop::slotSuspend() +{ + DCOPRef r("ksmserver", "ksmserver"); + r.send("suspend", 3); +} + +void KDesktop::slotHibernate() +{ + DCOPRef r("ksmserver", "ksmserver"); + r.send("suspend", 4); +} + +void KDesktop::slotHybridSuspend() +{ + DCOPRef r("ksmserver", "ksmserver"); + r.send("suspend", 5); +} + void KDesktop::setVRoot( bool enable ) { if ( enable == set_vroot ) @@ -1100,7 +1124,7 @@ void KDesktop::setIconsEnabled( bool enable ) void KDesktop::desktopResized() { - resize(kapp->desktop()->size()); + resize(tdeApp->desktop()->size()); if ( m_pIconView ) { @@ -1108,7 +1132,7 @@ void KDesktop::desktopResized() // remove all icons, resize desktop, tell kdiconview new iconsArea size // tell kdiconview to reget all icons m_pIconView->slotClear(); - m_pIconView->resize(kapp->desktop()->size()); + m_pIconView->resize(tdeApp->desktop()->size()); // get new desktopIconsArea from kicker TQByteArray data, result; @@ -1117,7 +1141,7 @@ void KDesktop::desktopResized() TQCString replyType; TQRect area; - if ( kapp->dcopClient()->call(kicker_name, kicker_name, "desktopIconsArea(int)", + if ( tdeApp->dcopClient()->call(kicker_name, kicker_name, "desktopIconsArea(int)", data, replyType, result, false, 2000) ) { TQDataStream res(result, IO_ReadOnly); diff --git a/kdesktop/desktop.h b/kdesktop/desktop.h index c6a208f07..ca1eefc61 100644 --- a/kdesktop/desktop.h +++ b/kdesktop/desktop.h @@ -44,7 +44,7 @@ class SaverEngine; class KRootWidget : public TQObject { - Q_OBJECT + TQ_OBJECT public: KRootWidget(); bool eventFilter( TQObject *, TQEvent * e ); @@ -63,7 +63,7 @@ signals: class KDesktop : public TQWidget, public KDesktopIface { - Q_OBJECT + TQ_OBJECT public: @@ -135,6 +135,10 @@ private slots: void slotLogoutNoCnf(); void slotHaltNoCnf(); void slotRebootNoCnf(); + void slotFreeze(); + void slotSuspend(); + void slotHibernate(); + void slotHybridSuspend(); /** Connected to KSycoca */ void slotDatabaseChanged(); diff --git a/kdesktop/init.cpp b/kdesktop/init.cpp index 6bf87f333..25e3dd717 100644 --- a/kdesktop/init.cpp +++ b/kdesktop/init.cpp @@ -19,11 +19,11 @@ #include <tdeio/job.h> #include <tdeio/netaccess.h> -#include <kstandarddirs.h> -#include <kdesktopfile.h> +#include <tdestandarddirs.h> +#include <tdedesktopfile.h> #include <tdeglobalsettings.h> #include <tdeapplication.h> -#include <kprocess.h> +#include <tdeprocess.h> #include <tdemessagebox.h> #include <tdelocale.h> #include <kdebug.h> @@ -40,7 +40,7 @@ #include <dirent.h> #include <stdlib.h> #include <errno.h> -#include <ksimpleconfig.h> +#include <tdesimpleconfig.h> // for multihead extern int kdesktop_screen_number; @@ -134,7 +134,7 @@ static TQString realDesktopPath() */ static void copyDesktopLinks() { - TDEConfig *config = kapp->config(); + TDEConfig *config = tdeApp->config(); config->setGroup("General"); if (!config->readBoolEntry("CopyDesktopLinks", true)) return; @@ -145,7 +145,7 @@ static void copyDesktopLinks() TQString desktopPath = realDesktopPath(); for (TQStringList::ConstIterator it = list.begin(); it != list.end(); it++) { - KDesktopFile desk( *it ); + TDEDesktopFile desk( *it ); if (desk.readBoolEntry("Hidden")) continue; copyFile( *it, desktopPath ); @@ -213,13 +213,13 @@ void testLocalInstallation() if ( emptyDesktop || firstTimeWithNewTrash || installNewTrashi18n ) { TQString oldIcon, oldEmptyIcon; if ( trashDesktopExists ) { - KDesktopFile trashDesktop( trashDesktopPath, true ); + TDEDesktopFile trashDesktop( trashDesktopPath, true ); oldIcon = trashDesktop.readIcon(); oldEmptyIcon = trashDesktop.readEntry( "EmptyIcon" ); } copyFile( locate( "data", "kdesktop/directory.trash" ), trashDesktopPath ); if ( trashDesktopExists ) { - KDesktopFile trashDesktop( trashDesktopPath ); + TDEDesktopFile trashDesktop( trashDesktopPath ); trashDesktop.writeEntry( "Icon", oldIcon ); trashDesktop.writeEntry( "EmptyIcon", oldEmptyIcon ); trashDesktop.sync(); @@ -234,7 +234,7 @@ void testLocalInstallation() (void)TDEIO::NetAccess::synchronousRun( job, 0 ); // OK the only thing missing is to convert the icon position... - KSimpleConfig cfg( locateLocal("appdata", "IconPositions") ); + TDESimpleConfig cfg( locateLocal("appdata", "IconPositions") ); if ( cfg.hasGroup( "IconPosition::Trash" ) && !cfg.hasGroup( "IconPosition::trash.desktop" ) ) { const TQMap<TQString, TQString> entries = cfg.entryMap( "IconPosition::Trash" ); cfg.setGroup( "IconPosition::trash.desktop" ); diff --git a/kdesktop/kcustommenu.cpp b/kdesktop/kcustommenu.cpp index 2e825c0d9..f3d3cf817 100644 --- a/kdesktop/kcustommenu.cpp +++ b/kdesktop/kcustommenu.cpp @@ -57,7 +57,7 @@ KCustomMenu::KCustomMenu(const TQString &configfile, TQWidget *parent) insertMenuItem( menuItem, -1 ); } - connect(this, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotActivated(int))); + connect(this, TQ_SIGNAL(activated(int)), this, TQ_SLOT(slotActivated(int))); } KCustomMenu::~KCustomMenu() @@ -71,7 +71,7 @@ KCustomMenu::slotActivated(int id) KService::Ptr s = d->entryMap[id]; if (!s) return; - kapp->startServiceByDesktopPath(s->desktopEntryPath()); + tdeApp->startServiceByDesktopPath(s->desktopEntryPath()); } // The following is copied from kicker's PanelServiceMenu diff --git a/kdesktop/kcustommenu.h b/kdesktop/kcustommenu.h index 93b8d671f..a8f2cf5c4 100644 --- a/kdesktop/kcustommenu.h +++ b/kdesktop/kcustommenu.h @@ -29,7 +29,7 @@ */ class KCustomMenu : public TQPopupMenu { - Q_OBJECT + TQ_OBJECT public: /** * Create a custome menu described by @p configfile. diff --git a/kdesktop/kdesktop.kcfg b/kdesktop/kdesktop.kcfg index 71e008562..183fcc417 100644 --- a/kdesktop/kdesktop.kcfg +++ b/kdesktop/kdesktop.kcfg @@ -123,7 +123,7 @@ </group> <group name="FMSettings"> <entry key="NormalTextColor" type="Color"> <!--SHARED--> - <default>Qt::white</default> + <default>TQt::white</default> <label>Normal text color used for icon labels</label> <whatsthis></whatsthis> </entry> diff --git a/kdesktop/kdesktopapp.cpp b/kdesktop/kdesktopapp.cpp index ba05dc655..b19817bbd 100644 --- a/kdesktop/kdesktopapp.cpp +++ b/kdesktop/kdesktopapp.cpp @@ -20,15 +20,15 @@ #include <kdesktopapp.h> KDesktopApp::KDesktopApp(): -KUniqueApplication() +TDEUniqueApplication() { #ifdef COMPOSITE initCmBackground(); #endif } -KDesktopApp::KDesktopApp(Display * dpy, Qt::HANDLE visual, Qt::HANDLE colormap): -KUniqueApplication(dpy, visual, colormap) +KDesktopApp::KDesktopApp(Display * dpy, TQt::HANDLE visual, TQt::HANDLE colormap): +TDEUniqueApplication(dpy, visual, colormap) { #ifdef COMPOSITE initCmBackground(); @@ -87,7 +87,7 @@ bool KDesktopApp::x11EventFilter (XEvent * xevent) emit cmBackgroundChanged(supported); } } - return KUniqueApplication::x11EventFilter (xevent); + return TDEUniqueApplication::x11EventFilter (xevent); } #endif diff --git a/kdesktop/kdesktopapp.h b/kdesktop/kdesktopapp.h index 94cdd1d33..4ce52c3a2 100644 --- a/kdesktop/kdesktopapp.h +++ b/kdesktop/kdesktopapp.h @@ -21,9 +21,9 @@ #define __kdesktopapp_h__ #include <config.h> -#include <kuniqueapplication.h> +#include <tdeuniqueapplication.h> -#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 +#if defined(TQ_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 #define COMPOSITE #endif @@ -33,13 +33,13 @@ # include <fixx11h.h> #endif -class KDesktopApp : public KUniqueApplication +class KDesktopApp : public TDEUniqueApplication { - Q_OBJECT + TQ_OBJECT public: KDesktopApp(); - KDesktopApp(Display * dpy, Qt::HANDLE visual = 0, - Qt::HANDLE colormap = 0); + KDesktopApp(Display * dpy, TQt::HANDLE visual = 0, + TQt::HANDLE colormap = 0); #ifdef COMPOSITE bool x11EventFilter (XEvent *); diff --git a/kdesktop/kdesktopbindings.cpp b/kdesktop/kdesktopbindings.cpp index 91bddb5b3..a4f46e717 100644 --- a/kdesktop/kdesktopbindings.cpp +++ b/kdesktop/kdesktopbindings.cpp @@ -1,6 +1,6 @@ #ifndef NOSLOTS # define DEF( name, key3, key4, fnSlot ) \ - keys->insert( name, i18n(name), TQString(), key3, key4, TQT_TQOBJECT(this), TQT_SLOT(fnSlot) ) + keys->insert( name, i18n(name), TQString(), key3, key4, this, TQ_SLOT(fnSlot) ) # define DEF2( name, key3, key4, receiver, slot ) \ keys->insert( name, i18n(name), TQString(), key3, key4, receiver, slot ); #else @@ -14,41 +14,62 @@ keys->insert( "Program:kdesktop", i18n("Desktop") ); #ifndef NOSLOTS - if (kapp->authorize("run_command")) + if (tdeApp->authorize("run_command")) { #endif - DEF( I18N_NOOP("Run Command"), ALT+Qt::Key_F2, WIN+Qt::Key_Return, slotExecuteCommand() ); + DEF( I18N_NOOP("Run Command"), ALT+TQt::Key_F2, WIN+TQt::Key_Return, slotExecuteCommand() ); #ifndef NOSLOTS } #endif - DEF( I18N_NOOP("Show Taskmanager"), CTRL+Qt::Key_Escape, WIN+CTRL+Qt::Key_Pause, slotShowTaskManager() ); - DEF( I18N_NOOP("Show Window List"), ALT+Qt::Key_F5, WIN+Qt::Key_0, slotShowWindowList() ); - DEF( I18N_NOOP("Switch User"), ALT+CTRL+Qt::Key_Insert, WIN+Qt::Key_Insert, slotSwitchUser() ); + DEF( I18N_NOOP("Show Taskmanager"), CTRL+TQt::Key_Escape, WIN+CTRL+TQt::Key_Pause, slotShowTaskManager() ); + DEF( I18N_NOOP("Show Window List"), ALT+TQt::Key_F5, WIN+TQt::Key_0, slotShowWindowList() ); + DEF( I18N_NOOP("Switch User"), ALT+CTRL+TQt::Key_Insert, WIN+TQt::Key_Insert, slotSwitchUser() ); #ifndef NOSLOTS - if (kapp->authorize("lock_screen")) + if (tdeApp->authorize("lock_screen")) { #endif - DEF2( I18N_NOOP("Lock Session"), ALT+CTRL+Qt::Key_L, WIN+Qt::Key_ScrollLock, KRootWm::self(), TQT_SLOT(slotLock()) ); - DEF2( I18N_NOOP("Lock Session (Hotkey)"), TDEShortcut(TQString("XF86ScreenSaver")), TDEShortcut(TQString("XF86ScreenSaver")), KRootWm::self(), TQT_SLOT(slotLock()) ); + DEF2( I18N_NOOP("Lock Session"), ALT+CTRL+TQt::Key_L, WIN+TQt::Key_ScrollLock, KRootWm::self(), TQ_SLOT(slotLock()) ); + DEF2( I18N_NOOP("Lock Session (Hotkey)"), TDEShortcut(TQString("XF86ScreenSaver")), TDEShortcut(TQString("XF86ScreenSaver")), KRootWm::self(), TQ_SLOT(slotLock()) ); #ifndef NOSLOTS } - if (kapp->authorize("start_screensaver")) + if (tdeApp->authorize("start_screensaver")) { #endif - DEF2( I18N_NOOP("Start Screen Saver"), ALT+CTRL+Qt::Key_S, WIN+Qt::Key_S, KRootWm::self(), TQT_SLOT(slotSave()) ); + DEF2( I18N_NOOP("Start Screen Saver"), ALT+CTRL+TQt::Key_S, WIN+TQt::Key_S, KRootWm::self(), TQ_SLOT(slotSave()) ); #ifndef NOSLOTS } - if (kapp->authorize("logout")) + if (tdeApp->authorize("logout")) { #endif - DEF( I18N_NOOP("Log Out"), ALT+CTRL+Qt::Key_Delete, WIN+Qt::Key_Escape, slotLogout() ); - DEF( I18N_NOOP("Log Out Without Confirmation"), ALT+CTRL+SHIFT+Qt::Key_Delete, WIN+SHIFT+Qt::Key_Escape, slotLogoutNoCnf() ); - DEF( I18N_NOOP("Halt without Confirmation"), ALT+CTRL+SHIFT+Qt::Key_PageDown, WIN+CTRL+SHIFT+Qt::Key_PageDown, slotHaltNoCnf() ); - DEF( I18N_NOOP("Reboot without Confirmation"), ALT+CTRL+SHIFT+Qt::Key_PageUp, WIN+CTRL+SHIFT+Qt::Key_PageUp, slotRebootNoCnf() ); + DEF( I18N_NOOP("Log Out"), ALT+CTRL+TQt::Key_Delete, WIN+TQt::Key_Escape, slotLogout() ); + DEF( I18N_NOOP("Log Out Without Confirmation"), ALT+CTRL+SHIFT+TQt::Key_Delete, WIN+SHIFT+TQt::Key_Escape, slotLogoutNoCnf() ); + DEF( I18N_NOOP("Halt without Confirmation"), ALT+CTRL+SHIFT+TQt::Key_PageDown, WIN+CTRL+SHIFT+TQt::Key_PageDown, slotHaltNoCnf() ); + DEF( I18N_NOOP("Reboot without Confirmation"), ALT+CTRL+SHIFT+TQt::Key_PageUp, WIN+CTRL+SHIFT+TQt::Key_PageUp, slotRebootNoCnf() ); #ifndef NOSLOTS } #endif + // Only add these options if supported by ksmserver + DCOPRef ksmref("ksmserver", "ksmserver"); + DCOPReply reply = ksmref.call("suspendOptions"); + + TQStringList suspendOptions; + if (reply.isValid()) { + reply.get(suspendOptions); + } + + if (suspendOptions.contains("freeze")) + DEF( I18N_NOOP("Freeze"), TDEShortcut(), TDEShortcut(), slotFreeze() ); + + if (suspendOptions.contains("suspend")) + DEF( I18N_NOOP("Suspend"), TDEShortcut(TQString("XF86Sleep")), TDEShortcut(TQString("XF86Sleep")), slotSuspend() ); + + if (suspendOptions.contains("hibernate")) + DEF( I18N_NOOP("Hibernate"), TDEShortcut(), TDEShortcut(), slotHibernate() ); + + if (suspendOptions.contains("hybridSuspend")) + DEF( I18N_NOOP("Hybrid Suspend"), TDEShortcut(), TDEShortcut(), slotHybridSuspend() ); + #undef DEF #undef DEF2 #undef WIN diff --git a/kdesktop/kdesktopshadowsettings.h b/kdesktop/kdesktopshadowsettings.h index c7e73db71..3c08cd574 100644 --- a/kdesktop/kdesktopshadowsettings.h +++ b/kdesktop/kdesktopshadowsettings.h @@ -24,7 +24,7 @@ #define __FX_DATA_DESKTOP #include <tqcolor.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeconfig.h> #include <kshadowsettings.h> diff --git a/kdesktop/kdiconview.cpp b/kdesktop/kdiconview.cpp index 409887784..70f1010b7 100644 --- a/kdesktop/kdiconview.cpp +++ b/kdesktop/kdiconview.cpp @@ -27,7 +27,7 @@ #include <tdeapplication.h> #include <kcolordrag.h> #include <kdebug.h> -#include <kdesktopfile.h> +#include <tdedesktopfile.h> #include <kdirlister.h> #include <tdeglobalsettings.h> #include <kpropertiesdialog.h> @@ -42,7 +42,7 @@ #include <kivfreespaceoverlay.h> #include <kprotocolinfo.h> #include <kstdaction.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <kurldrag.h> #include <twin.h> #include <twinmodule.h> @@ -74,7 +74,7 @@ TQRect KDIconView::desktopRect() // ----------------------------------------------------------------------------- -void KDIconView::saveIconPosition(KSimpleConfig *config, int x, int y) +void KDIconView::saveIconPosition(TDESimpleConfig *config, int x, int y) { // save the icon position in absolute coordinates config->writeEntry("Xabs", x); @@ -90,7 +90,7 @@ void KDIconView::saveIconPosition(KSimpleConfig *config, int x, int y) // ----------------------------------------------------------------------------- -void KDIconView::readIconPosition(KSimpleConfig *config, int &x, int &y) +void KDIconView::readIconPosition(TDESimpleConfig *config, int &x, int &y) { // check if we have the position for the current desktop size TQRect desk = desktopRect(); @@ -138,7 +138,7 @@ KDIconView::KDIconView( TQWidget *parent, const char* name ) m_bNeedSave( false ), m_autoAlign( false ), m_hasExistingPos( false ), - m_bEditableDesktopIcons( kapp->authorize("editable_desktop_icons") ), + m_bEditableDesktopIcons( tdeApp->authorize("editable_desktop_icons") ), m_bShowDot( false ), m_bVertAlign( true ), m_dirLister( 0L ), @@ -162,32 +162,32 @@ KDIconView::KDIconView( TQWidget *parent, const char* name ) // Initialize media handler mMediaListView = new TQListView(); - connect( TQApplication::clipboard(), TQT_SIGNAL(dataChanged()), this, TQT_SLOT(slotClipboardDataChanged()) ); + connect( TQApplication::clipboard(), TQ_SIGNAL(dataChanged()), this, TQ_SLOT(slotClipboardDataChanged()) ); setURL( desktopURL() ); // sets m_url m_desktopDirs = TDEGlobal::dirs()->findDirs( "appdata", "Desktop" ); initDotDirectories(); - connect( this, TQT_SIGNAL( executed( TQIconViewItem * ) ), - TQT_SLOT( slotExecuted( TQIconViewItem * ) ) ); - connect( this, TQT_SIGNAL( returnPressed( TQIconViewItem * ) ), - TQT_SLOT( slotReturnPressed( TQIconViewItem * ) ) ); - connect( this, TQT_SIGNAL( mouseButtonPressed(int, TQIconViewItem*, const TQPoint&)), - TQT_SLOT( slotMouseButtonPressed(int, TQIconViewItem*, const TQPoint&)) ); - connect( this, TQT_SIGNAL( mouseButtonClicked(int, TQIconViewItem*, const TQPoint&)), - TQT_SLOT( slotMouseButtonClickedKDesktop(int, TQIconViewItem*, const TQPoint&)) ); - connect( this, TQT_SIGNAL( contextMenuRequested(TQIconViewItem*, const TQPoint&)), - TQT_SLOT( slotContextMenuRequested(TQIconViewItem*, const TQPoint&)) ); + connect( this, TQ_SIGNAL( executed( TQIconViewItem * ) ), + TQ_SLOT( slotExecuted( TQIconViewItem * ) ) ); + connect( this, TQ_SIGNAL( returnPressed( TQIconViewItem * ) ), + TQ_SLOT( slotReturnPressed( TQIconViewItem * ) ) ); + connect( this, TQ_SIGNAL( mouseButtonPressed(int, TQIconViewItem*, const TQPoint&)), + TQ_SLOT( slotMouseButtonPressed(int, TQIconViewItem*, const TQPoint&)) ); + connect( this, TQ_SIGNAL( mouseButtonClicked(int, TQIconViewItem*, const TQPoint&)), + TQ_SLOT( slotMouseButtonClickedKDesktop(int, TQIconViewItem*, const TQPoint&)) ); + connect( this, TQ_SIGNAL( contextMenuRequested(TQIconViewItem*, const TQPoint&)), + TQ_SLOT( slotContextMenuRequested(TQIconViewItem*, const TQPoint&)) ); - connect( this, TQT_SIGNAL( enableAction( const char * , bool ) ), - TQT_SLOT( slotEnableAction( const char * , bool ) ) ); + connect( this, TQ_SIGNAL( enableAction( const char * , bool ) ), + TQ_SLOT( slotEnableAction( const char * , bool ) ) ); // Hack: KonqIconViewWidget::slotItemRenamed is not virtual :-( - disconnect( this, TQT_SIGNAL(itemRenamed(TQIconViewItem *, const TQString &)), - this, TQT_SLOT(slotItemRenamed(TQIconViewItem *, const TQString &)) ); - connect( this, TQT_SIGNAL(itemRenamed(TQIconViewItem *, const TQString &)), - this, TQT_SLOT(slotItemRenamed(TQIconViewItem *, const TQString &)) ); + disconnect( this, TQ_SIGNAL(itemRenamed(TQIconViewItem *, const TQString &)), + this, TQ_SLOT(slotItemRenamed(TQIconViewItem *, const TQString &)) ); + connect( this, TQ_SIGNAL(itemRenamed(TQIconViewItem *, const TQString &)), + this, TQ_SLOT(slotItemRenamed(TQIconViewItem *, const TQString &)) ); if (!m_bEditableDesktopIcons) { @@ -226,7 +226,7 @@ void KDIconView::initDotDirectories() delete m_dotDirectory; - m_dotDirectory = new KSimpleConfig( dotFileName ); + m_dotDirectory = new TDESimpleConfig( dotFileName ); // If we don't allow editable desktop icons, empty m_dotDirectory if (!m_bEditableDesktopIcons) { @@ -248,7 +248,7 @@ void KDIconView::initDotDirectories() if (TQFile::exists(localDotFileName)) { - KSimpleConfig dotDir(localDotFileName, true); // Read only + TDESimpleConfig dotDir(localDotFileName, true); // Read only TQStringList groups = dotDir.groupList(); TQStringList::ConstIterator gIt = groups.begin(); @@ -370,16 +370,16 @@ void KDIconView::start() m_bNeedSave = false; - connect( m_dirLister, TQT_SIGNAL( clear() ), this, TQT_SLOT( slotClear() ) ); - connect( m_dirLister, TQT_SIGNAL( started(const KURL&) ), this, TQT_SLOT( slotStarted(const KURL&) ) ); - connect( m_dirLister, TQT_SIGNAL( completed() ), this, TQT_SLOT( slotCompleted() ) ); - connect( m_dirLister, TQT_SIGNAL( newItems( const KFileItemList & ) ), this, TQT_SLOT( slotNewItems( const KFileItemList & ) ) ); - connect( m_dirLister, TQT_SIGNAL( deleteItem( KFileItem * ) ), this, TQT_SLOT( slotDeleteItem( KFileItem * ) ) ); - connect( m_dirLister, TQT_SIGNAL( refreshItems( const KFileItemList & ) ), this, TQT_SLOT( slotRefreshItems( const KFileItemList & ) ) ); + connect( m_dirLister, TQ_SIGNAL( clear() ), this, TQ_SLOT( slotClear() ) ); + connect( m_dirLister, TQ_SIGNAL( started(const KURL&) ), this, TQ_SLOT( slotStarted(const KURL&) ) ); + connect( m_dirLister, TQ_SIGNAL( completed() ), this, TQ_SLOT( slotCompleted() ) ); + connect( m_dirLister, TQ_SIGNAL( newItems( const KFileItemList & ) ), this, TQ_SLOT( slotNewItems( const KFileItemList & ) ) ); + connect( m_dirLister, TQ_SIGNAL( deleteItem( KFileItem * ) ), this, TQ_SLOT( slotDeleteItem( KFileItem * ) ) ); + connect( m_dirLister, TQ_SIGNAL( refreshItems( const KFileItemList & ) ), this, TQ_SLOT( slotRefreshItems( const KFileItemList & ) ) ); // Start the directory lister ! m_dirLister->setShowingDotFiles( m_bShowDot ); - kapp->allowURLAction("list", KURL(), url()); + tdeApp->allowURLAction("list", KURL(), url()); startDirLister(); createActions(); } @@ -420,35 +420,35 @@ void KDIconView::createActions() { if (m_bEditableDesktopIcons) { - TDEAction *undo = KStdAction::undo( KonqUndoManager::self(), TQT_SLOT( undo() ), &m_actionCollection, "undo" ); - connect( KonqUndoManager::self(), TQT_SIGNAL( undoAvailable( bool ) ), - undo, TQT_SLOT( setEnabled( bool ) ) ); - connect( KonqUndoManager::self(), TQT_SIGNAL( undoTextChanged( const TQString & ) ), - undo, TQT_SLOT( setText( const TQString & ) ) ); + TDEAction *undo = KStdAction::undo( KonqUndoManager::self(), TQ_SLOT( undo() ), &m_actionCollection, "undo" ); + connect( KonqUndoManager::self(), TQ_SIGNAL( undoAvailable( bool ) ), + undo, TQ_SLOT( setEnabled( bool ) ) ); + connect( KonqUndoManager::self(), TQ_SIGNAL( undoTextChanged( const TQString & ) ), + undo, TQ_SLOT( setText( const TQString & ) ) ); undo->setEnabled( KonqUndoManager::self()->undoAvailable() ); - TDEAction* paCut = KStdAction::cut( TQT_TQOBJECT(this), TQT_SLOT( slotCut() ), &m_actionCollection, "cut" ); + TDEAction* paCut = KStdAction::cut( this, TQ_SLOT( slotCut() ), &m_actionCollection, "cut" ); TDEShortcut cutShortCut = paCut->shortcut(); cutShortCut.remove( KKey( SHIFT + Key_Delete ) ); // used for deleting files paCut->setShortcut( cutShortCut ); - KStdAction::copy( TQT_TQOBJECT(this), TQT_SLOT( slotCopy() ), &m_actionCollection, "copy" ); - KStdAction::paste( TQT_TQOBJECT(this), TQT_SLOT( slotPaste() ), &m_actionCollection, "paste" ); - TDEAction *pasteTo = KStdAction::paste( TQT_TQOBJECT(this), TQT_SLOT( slotPopupPasteTo() ), &m_actionCollection, "pasteto" ); + KStdAction::copy( this, TQ_SLOT( slotCopy() ), &m_actionCollection, "copy" ); + KStdAction::paste( this, TQ_SLOT( slotPaste() ), &m_actionCollection, "paste" ); + TDEAction *pasteTo = KStdAction::paste( this, TQ_SLOT( slotPopupPasteTo() ), &m_actionCollection, "pasteto" ); pasteTo->setEnabled( false ); // only enabled during popupMenu() TDEShortcut reloadShortcut = TDEStdAccel::shortcut(TDEStdAccel::Reload); - new TDEAction( i18n( "&Reload" ), "reload", reloadShortcut, TQT_TQOBJECT(this), TQT_SLOT( refreshIcons() ), &m_actionCollection, "reload" ); + new TDEAction( i18n( "&Reload" ), "reload", reloadShortcut, this, TQ_SLOT( refreshIcons() ), &m_actionCollection, "reload" ); - (void) new TDEAction( i18n( "&Rename" ), /*"editrename",*/ Key_F2, TQT_TQOBJECT(this), TQT_SLOT( renameSelectedItem() ), &m_actionCollection, "rename" ); - (void) new TDEAction( i18n( "&Properties" ), ALT+Key_Return, TQT_TQOBJECT(this), TQT_SLOT( slotProperties() ), &m_actionCollection, "properties" ); + (void) new TDEAction( i18n( "&Rename" ), /*"editrename",*/ Key_F2, this, TQ_SLOT( renameSelectedItem() ), &m_actionCollection, "rename" ); + (void) new TDEAction( i18n( "&Properties" ), ALT+Key_Return, this, TQ_SLOT( slotProperties() ), &m_actionCollection, "properties" ); TDEAction* trash = new TDEAction( i18n( "&Move to Trash" ), "edittrash", Key_Delete, &m_actionCollection, "trash" ); - connect( trash, TQT_SIGNAL( activated( TDEAction::ActivationReason, TQt::ButtonState ) ), - this, TQT_SLOT( slotTrashActivated( TDEAction::ActivationReason, TQt::ButtonState ) ) ); + connect( trash, TQ_SIGNAL( activated( TDEAction::ActivationReason, TQt::ButtonState ) ), + this, TQ_SLOT( slotTrashActivated( TDEAction::ActivationReason, TQt::ButtonState ) ) ); TDEConfig config("kdeglobals", true, false); config.setGroup( "KDE" ); - (void) new TDEAction( i18n( "&Delete" ), "edit-delete", SHIFT+Key_Delete, TQT_TQOBJECT(this), TQT_SLOT( slotDelete() ), &m_actionCollection, "del" ); + (void) new TDEAction( i18n( "&Delete" ), "edit-delete", SHIFT+Key_Delete, this, TQ_SLOT( slotDelete() ), &m_actionCollection, "del" ); // Initial state of the actions (cut/copy/paste/...) slotSelectionChanged(); @@ -526,8 +526,8 @@ void KDIconView::setAutoAlign( bool b ) else { KRootWm::self()->startup = false; } - connect( this, TQT_SIGNAL( iconMoved() ), - this, TQT_SLOT( lineupIcons() ) ); + connect( this, TQ_SIGNAL( iconMoved() ), + this, TQ_SLOT( lineupIcons() ) ); } else { // change maxItemWidth, because when grid-align was active, it changed this for the grid @@ -535,8 +535,8 @@ void KDIconView::setAutoAlign( bool b ) setMaxItemWidth( TQMAX( TQMAX( sz, previewIconSize( iconSize() ) ), KonqFMSettings::settings()->iconTextWidth() ) ); setFont( font() ); // Force calcRect() - disconnect( this, TQT_SIGNAL( iconMoved() ), - this, TQT_SLOT( lineupIcons() ) ); + disconnect( this, TQ_SIGNAL( iconMoved() ), + this, TQ_SLOT( lineupIcons() ) ); } } @@ -566,7 +566,7 @@ void KDIconView::startDirLister() u.setPath( *it ); m_mergeDirs.append( u ); // And start listing this dir right now - kapp->allowURLAction("list", KURL(), u); + tdeApp->allowURLAction("list", KURL(), u); m_dirLister->openURL( u, true ); } configureMedia(); @@ -650,7 +650,7 @@ void KDIconView::contentsMousePressEvent( TQMouseEvent *e ) if (!m_dirLister) return; //kdDebug(1204) << "KDIconView::contentsMousePressEvent" << endl; // TQIconView, as of Qt 2.2, doesn't emit mouseButtonPressed for LMB on background - if ( e->button() == Qt::LeftButton && KRootWm::self()->hasLeftButtonMenu() ) + if ( e->button() == TQt::LeftButton && KRootWm::self()->hasLeftButtonMenu() ) { TQIconViewItem *item = findItem( e->pos() ); if ( !item ) @@ -676,7 +676,7 @@ void KDIconView::wheelEvent( TQWheelEvent* e ) TQIconViewItem *item = findItem( e->pos() ); if ( !item ) { - TQWheelEvent *we = TQT_TQWHEELEVENT(e); + TQWheelEvent *we = static_cast<TQWheelEvent*>(e); if ( we->state() == ControlButton ) { @@ -731,7 +731,7 @@ void KDIconView::slotMouseButtonClickedKDesktop(int _button, TQIconViewItem* _it { if (!m_dirLister) return; //kdDebug(1204) << "KDIconView::slotMouseButtonClickedKDesktop" << endl; - if ( _item && _button == Qt::MidButton ) { + if ( _item && _button == TQt::MidButton ) { slotExecuted(_item); } } @@ -749,7 +749,7 @@ void KDIconView::slotReturnPressed( TQIconViewItem *item ) void KDIconView::slotExecuted( TQIconViewItem *item ) { - kapp->propagateSessionManager(); + tdeApp->propagateSessionManager(); m_lastDeletedIconPos = TQPoint(); // user action -> not renaming an icon if (item) { visualActivate(item); @@ -839,7 +839,7 @@ void KDIconView::saveMediaListView() appname = "kdesktop"; else appname.sprintf("kdesktop-screen-%d", konq_screen_number); - kapp->dcopClient()->send( appname, "KDesktopIface", "configure()", data ); + tdeApp->dcopClient()->send( appname, "KDesktopIface", "configure()", data ); delete g_pConfig; } @@ -906,7 +906,7 @@ bool KDIconView::deleteGlobalDesktopFiles() // Web Browser kfmclient openBrowser %u Application TDE; if ( isDesktopFile(fItem) ) { - KSimpleConfig cfg( fItem->url().path(), true ); + TDESimpleConfig cfg( fItem->url().path(), true ); cfg.setDesktopGroup(); if ( cfg.readEntry( "X-Trinity-BuiltIn" ) == "true" ) { removeBuiltinIcon(cfg.readEntry( "Name" )); @@ -914,7 +914,7 @@ bool KDIconView::deleteGlobalDesktopFiles() } } - KDesktopFile df(desktopPath + fItem->url().fileName()); + TDEDesktopFile df(desktopPath + fItem->url().fileName()); df.writeEntry("Hidden", true); df.sync(); @@ -947,7 +947,7 @@ void KDIconView::slotDelete() // Not to be confused with the global popup-menu, KRootWm, when doing RMB on the desktop void KDIconView::popupMenu( const TQPoint &_global, const KFileItemList& _items ) { - if (!kapp->authorize("action/kdesktop_rmb")) return; + if (!tdeApp->authorize("action/kdesktop_rmb")) return; if (!m_dirLister) return; if ( _items.count() == 1 ) m_popupURL = _items.getFirst()->url(); @@ -1062,7 +1062,7 @@ bool KDIconView::makeFriendlyText( KFileIVI *fileIVI ) if ( !desktopFile.isEmpty() ) { - KSimpleConfig cfg( desktopFile, true ); + TDESimpleConfig cfg( desktopFile, true ); cfg.setDesktopGroup(); if (cfg.readBoolEntry("Hidden")) { return false; @@ -1145,7 +1145,7 @@ void KDIconView::slotNewItems( const KFileItemList & entries ) if (m_nextItemPos.isNull() && !m_dotDirectory) { // Not found, we'll need to save the new pos kdDebug(1214)<<"Neither a drop position stored nor m_dotDirectory set"<<endl; - m_dotDirectory = new KSimpleConfig( dotDirectoryPath(), true ); + m_dotDirectory = new TDESimpleConfig( dotDirectoryPath(), true ); // recursion slotNewItems( entries ); delete m_dotDirectory; @@ -1406,7 +1406,7 @@ void KDIconView::refreshTrashIcon() KFileIVI * fileIVI = static_cast<KFileIVI *>(it); KFileItem* item = fileIVI->item(); if ( isDesktopFile( item ) ) { - KSimpleConfig cfg( item->url().path(), true ); + TDESimpleConfig cfg( item->url().path(), true ); cfg.setDesktopGroup(); if ( cfg.readEntry( "Type" ) == "Link" && cfg.readEntry( "URL" ) == "trash:/" ) { @@ -1446,7 +1446,7 @@ void KDIconView::showFreeSpaceOverlay(KFileIVI* item) if (!m_paOutstandingFreeSpaceOverlaysTimer) { m_paOutstandingFreeSpaceOverlaysTimer = new TQTimer(this); - connect(m_paOutstandingFreeSpaceOverlaysTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotFreeSpaceOverlayStart())); + connect(m_paOutstandingFreeSpaceOverlaysTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotFreeSpaceOverlayStart())); } m_paOutstandingFreeSpaceOverlaysTimer->start(20, true); } @@ -1466,7 +1466,7 @@ void KDIconView::slotFreeSpaceOverlayStart() if (overlay) { - connect( overlay, TQT_SIGNAL( finished() ), this, TQT_SLOT( slotFreeSpaceOverlayFinished() ) ); + connect( overlay, TQ_SIGNAL( finished() ), this, TQ_SLOT( slotFreeSpaceOverlayFinished() ) ); overlay->start(); // Watch out, may emit finished() immediately!! return; // Let it run.... } @@ -1578,7 +1578,7 @@ void KDIconView::slotClipboardDataChanged() void KDIconView::renameDesktopFile(const TQString &path, const TQString &name) { - KDesktopFile cfg( path, false ); + TDEDesktopFile cfg( path, false ); // if we don't have the desktop entry group, then we assume that // it's not a config file (and we don't nuke it!) @@ -1667,7 +1667,7 @@ void KDIconView::slotAboutToCreate(const TQPoint &pos, const TQValueList<TDEIO:: saveIconPosition(m_dotDirectory, m_lastDropPos.x(), m_lastDropPos.y()); int dX = m_lastDropPos.x() - m_dropPos.x(); int dY = m_lastDropPos.y() - m_dropPos.y(); - if ((QABS(dX) > QABS(dY)) || (m_lastDropPos.x() + 2*gridX > width())) + if ((TQABS(dX) > TQABS(dY)) || (m_lastDropPos.x() + 2*gridX > width())) m_lastDropPos = TQPoint(m_dropPos.x(), m_lastDropPos.y() + gridY); else m_lastDropPos = TQPoint(m_lastDropPos.x() + gridX, m_lastDropPos.y()); @@ -1832,8 +1832,8 @@ void KDIconView::updateWorkArea( const TQRect &wr ) } } if ( needRepaint ) { - viewport()->repaint( FALSE ); - repaint( FALSE ); + viewport()->repaint( false ); + repaint( false ); saveIconPositions(); } @@ -1905,7 +1905,7 @@ bool KDIconView::isFreePosition( const TQIconViewItem *item, const TQRect &curre if (area.isNull()) area = iconArea(); // If the proposed item rect is not contained by the desktop, by definition the item position is not free! - if (!area.contains(r, FALSE)) { + if (!area.contains(r, false)) { return false; } @@ -1929,7 +1929,7 @@ bool KDIconView::isFreePosition( const TQIconViewItem *item, const TQRect& rect, if (area.isNull()) area = iconArea(); // If the proposed item rect is not contained by the desktop, by definition the item position is not free! - if (!area.contains(rect, FALSE)) { + if (!area.contains(rect, false)) { return false; } diff --git a/kdesktop/kdiconview.h b/kdesktop/kdiconview.h index f3ebe6718..7ef8d4889 100644 --- a/kdesktop/kdiconview.h +++ b/kdesktop/kdiconview.h @@ -33,7 +33,7 @@ class KDirLister; class KonqSettings; -class KSimpleConfig; +class TDESimpleConfig; class TDEAccel; class KShadowEngine; class KDesktopShadowSettings; @@ -48,7 +48,7 @@ class KDesktopShadowSettings; */ class KDIconView : public KonqIconViewWidget, public KDirNotify { - Q_OBJECT + TQ_OBJECT public: KDIconView( TQWidget *parent, const char* name = 0L ); @@ -205,8 +205,8 @@ private: void refreshTrashIcon(); static TQRect desktopRect(); - static void saveIconPosition(KSimpleConfig *config, int x, int y); - static void readIconPosition(KSimpleConfig *config, int &x, int &y); + static void saveIconPosition(TDESimpleConfig *config, int x, int y); + static void readIconPosition(TDESimpleConfig *config, int &x, int &y); void showFreeSpaceOverlay(KFileIVI* item); @@ -243,7 +243,7 @@ private: TQStringList m_desktopDirs; /** The desktop's .directory, used for storing icon positions */ - KSimpleConfig *m_dotDirectory; + TDESimpleConfig *m_dotDirectory; /** Position of last deleted icon - used when renaming a file */ TQPoint m_lastDeletedIconPos; diff --git a/kdesktop/krootwm.cpp b/kdesktop/krootwm.cpp index 62ee673e0..9e751d573 100644 --- a/kdesktop/krootwm.cpp +++ b/kdesktop/krootwm.cpp @@ -32,8 +32,8 @@ #include <dirent.h> #include <errno.h> -#include <kprocess.h> -#include <kstandarddirs.h> +#include <tdeprocess.h> +#include <tdestandarddirs.h> #include <tdepopupmenu.h> #include <tdeapplication.h> #include <tdeconfig.h> @@ -52,7 +52,7 @@ #include <tdemessagebox.h> #include <kuser.h> #include <tqfile.h> -#include <ntqthread.h> +#include <tqthread.h> #include <tqeventloop.h> #include "krootwm.h" @@ -72,7 +72,7 @@ KRootWm * KRootWm::s_rootWm = 0; extern TQCString kdesktop_name, kicker_name, twin_name; -KRootWm::KRootWm(SaverEngine* _saver, KDesktop* _desktop) : TQObject(_desktop), startup(FALSE) +KRootWm::KRootWm(SaverEngine* _saver, KDesktop* _desktop) : TQObject(_desktop), startup(false) { s_rootWm = this; m_actionCollection = new TDEActionCollection(_desktop, this, "KRootWm::m_actionCollection"); @@ -86,16 +86,16 @@ KRootWm::KRootWm(SaverEngine* _saver, KDesktop* _desktop) : TQObject(_desktop), // Creates the new menu menuBar = 0; // no menubar yet menuNew = 0; - if (m_bDesktopEnabled && kapp->authorize("editable_desktop_icons")) + if (m_bDesktopEnabled && tdeApp->authorize("editable_desktop_icons")) { menuNew = new KNewMenu( m_actionCollection, "new_menu" ); - connect(menuNew->popupMenu(), TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( slotFileNewAboutToShow() ) ); - connect( menuNew, TQT_SIGNAL( activated() ), - m_pDesktop->iconView(), TQT_SLOT( slotNewMenuActivated() ) ); + connect(menuNew->popupMenu(), TQ_SIGNAL( aboutToShow() ), + this, TQ_SLOT( slotFileNewAboutToShow() ) ); + connect( menuNew, TQ_SIGNAL( activated() ), + m_pDesktop->iconView(), TQ_SLOT( slotNewMenuActivated() ) ); } - if (kapp->authorizeTDEAction("bookmarks")) + if (tdeApp->authorizeTDEAction("bookmarks")) { bookmarks = new TDEActionMenu( i18n("Bookmarks"), "bookmark", m_actionCollection, "bookmarks" ); // The KBookmarkMenu is needed to fill the Bookmarks menu in the desktop menubar. @@ -114,8 +114,8 @@ KRootWm::KRootWm(SaverEngine* _saver, KDesktop* _desktop) : TQObject(_desktop), // so we create them here desktopMenu = new TQPopupMenu; windowListMenu = new KWindowListMenu; - connect( windowListMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( slotWindowListAboutToShow() ) ); + connect( windowListMenu, TQ_SIGNAL( aboutToShow() ), + this, TQ_SLOT( slotWindowListAboutToShow() ) ); // Create the actions #if 0 @@ -132,82 +132,82 @@ KRootWm::KRootWm(SaverEngine* _saver, KDesktop* _desktop) : TQObject(_desktop), } #endif - if (kapp->authorize("run_command")) + if (tdeApp->authorize("run_command")) { - new TDEAction(i18n("Run Command..."), "system-run", 0, TQT_TQOBJECT(m_pDesktop), TQT_SLOT( slotExecuteCommand() ), m_actionCollection, "exec" ); - new TDEAction(i18n("Open Terminal Here..." ), "terminal", CTRL+Key_T, this, TQT_SLOT( slotOpenTerminal() ), + new TDEAction(i18n("Run Command..."), "system-run", 0, m_pDesktop, TQ_SLOT( slotExecuteCommand() ), m_actionCollection, "exec" ); + new TDEAction(i18n("Open Terminal Here..." ), "terminal", CTRL+Key_T, this, TQ_SLOT( slotOpenTerminal() ), m_actionCollection, "open_terminal" ); } if (!TDEGlobal::config()->isImmutable()) { - new TDEAction(i18n("Configure Desktop..."), "configure", 0, this, TQT_SLOT( slotConfigureDesktop() ), + new TDEAction(i18n("Configure Desktop..."), "configure", 0, this, TQ_SLOT( slotConfigureDesktop() ), m_actionCollection, "configdesktop" ); - new TDEAction(i18n("Disable Desktop Menu"), 0, this, TQT_SLOT( slotToggleDesktopMenu() ), + new TDEAction(i18n("Disable Desktop Menu"), 0, this, TQ_SLOT( slotToggleDesktopMenu() ), m_actionCollection, "togglemenubar" ); } - new TDEAction(i18n("Unclutter Windows"), 0, this, TQT_SLOT( slotUnclutterWindows() ), + new TDEAction(i18n("Unclutter Windows"), 0, this, TQ_SLOT( slotUnclutterWindows() ), m_actionCollection, "unclutter" ); - new TDEAction(i18n("Cascade Windows"), 0, this, TQT_SLOT( slotCascadeWindows() ), + new TDEAction(i18n("Cascade Windows"), 0, this, TQ_SLOT( slotCascadeWindows() ), m_actionCollection, "cascade" ); // arrange menu actions - if (m_bDesktopEnabled && kapp->authorize("editable_desktop_icons")) + if (m_bDesktopEnabled && tdeApp->authorize("editable_desktop_icons")) { - new TDEAction(i18n("By Name (Case Sensitive)"), 0, this, TQT_SLOT( slotArrangeByNameCS() ), + new TDEAction(i18n("By Name (Case Sensitive)"), 0, this, TQ_SLOT( slotArrangeByNameCS() ), m_actionCollection, "sort_ncs"); - new TDEAction(i18n("By Name (Case Insensitive)"), 0, this, TQT_SLOT( slotArrangeByNameCI() ), + new TDEAction(i18n("By Name (Case Insensitive)"), 0, this, TQ_SLOT( slotArrangeByNameCI() ), m_actionCollection, "sort_nci"); - new TDEAction(i18n("By Size"), 0, this, TQT_SLOT( slotArrangeBySize() ), + new TDEAction(i18n("By Size"), 0, this, TQ_SLOT( slotArrangeBySize() ), m_actionCollection, "sort_size"); - new TDEAction(i18n("By Type"), 0, this, TQT_SLOT( slotArrangeByType() ), + new TDEAction(i18n("By Type"), 0, this, TQ_SLOT( slotArrangeByType() ), m_actionCollection, "sort_type"); - new TDEAction(i18n("By Date"), 0, this, TQT_SLOT( slotArrangeByDate() ), + new TDEAction(i18n("By Date"), 0, this, TQ_SLOT( slotArrangeByDate() ), m_actionCollection, "sort_date"); TDEToggleAction *aSortDirsFirst = new TDEToggleAction( i18n("Directories First"), 0, m_actionCollection, "sort_directoriesfirst" ); - connect( aSortDirsFirst, TQT_SIGNAL( toggled( bool ) ), - this, TQT_SLOT( slotToggleDirFirst( bool ) ) ); + connect( aSortDirsFirst, TQ_SIGNAL( toggled( bool ) ), + this, TQ_SLOT( slotToggleDirFirst( bool ) ) ); new TDEAction(i18n("Line Up Horizontally"), 0, - this, TQT_SLOT( slotLineupIconsHoriz() ), + this, TQ_SLOT( slotLineupIconsHoriz() ), m_actionCollection, "lineupHoriz" ); new TDEAction(i18n("Line Up Vertically"), 0, - this, TQT_SLOT( slotLineupIconsVert() ), + this, TQ_SLOT( slotLineupIconsVert() ), m_actionCollection, "lineupVert" ); TDEToggleAction *aAutoAlign = new TDEToggleAction(i18n("Align to Grid"), 0, m_actionCollection, "realign" ); - connect( aAutoAlign, TQT_SIGNAL( toggled( bool ) ), - this, TQT_SLOT( slotToggleAutoAlign( bool ) ) ); + connect( aAutoAlign, TQ_SIGNAL( toggled( bool ) ), + this, TQ_SLOT( slotToggleAutoAlign( bool ) ) ); TDEToggleAction *aLockIcons = new TDEToggleAction(i18n("Lock in Place"), 0, m_actionCollection, "lock_icons"); - connect( aLockIcons, TQT_SIGNAL( toggled( bool ) ), - this, TQT_SLOT( slotToggleLockIcons( bool ) ) ); + connect( aLockIcons, TQ_SIGNAL( toggled( bool ) ), + this, TQ_SLOT( slotToggleLockIcons( bool ) ) ); } if (m_bDesktopEnabled) { - new TDEAction(i18n("Refresh Desktop"), "desktop", 0, this, TQT_SLOT( slotRefreshDesktop() ), + new TDEAction(i18n("Refresh Desktop"), "desktop", 0, this, TQ_SLOT( slotRefreshDesktop() ), m_actionCollection, "refresh" ); } // Icons in sync with kicker - if (kapp->authorize("lock_screen")) + if (tdeApp->authorize("lock_screen")) { - new TDEAction(i18n("Lock Session"), "system-lock-screen", 0, this, TQT_SLOT( slotLock() ), + new TDEAction(i18n("Lock Session"), "system-lock-screen", 0, this, TQ_SLOT( slotLock() ), m_actionCollection, "lock" ); } - if (kapp->authorize("logout")) + if (tdeApp->authorize("logout")) { new TDEAction(i18n("Log Out \"%1\"...").arg(KUser().loginName()), "system-log-out", 0, - this, TQT_SLOT( slotLogout() ), m_actionCollection, "logout" ); + this, TQ_SLOT( slotLogout() ), m_actionCollection, "logout" ); } - if (kapp->authorize("start_new_session") && DM().isSwitchable()) + if (tdeApp->authorize("start_new_session") && DM().isSwitchable()) { new TDEAction(i18n("Start New Session"), "fork", 0, this, - TQT_SLOT( slotNewSession() ), m_actionCollection, "newsession" ); - if (kapp->authorize("lock_screen")) + TQ_SLOT( slotNewSession() ), m_actionCollection, "newsession" ); + if (tdeApp->authorize("lock_screen")) { new TDEAction(i18n("Lock Current && Start New Session"), "system-lock-screen", 0, this, - TQT_SLOT( slotLockNNewSession() ), m_actionCollection, "lockNnewsession" ); + TQ_SLOT( slotLockNNewSession() ), m_actionCollection, "lockNnewsession" ); } } @@ -249,7 +249,7 @@ void KRootWm::initConfig() // Read configuration for icons alignment if ( m_bDesktopEnabled ) { m_pDesktop->iconView()->setAutoAlign( KDesktopSettings::autoLineUpIcons() ); - if ( kapp->authorize( "editable_desktop_icons" ) ) { + if ( tdeApp->authorize( "editable_desktop_icons" ) ) { m_pDesktop->iconView()->setIconsLocked( KDesktopSettings::lockIcons() ); TDEToggleAction *aLockIcons = static_cast<TDEToggleAction*>(m_actionCollection->action("lock_icons")); if (aLockIcons) @@ -314,8 +314,8 @@ void KRootWm::buildMenus() if (m_actionCollection->action("newsession")) { sessionsMenu = new TQPopupMenu; - connect( sessionsMenu, TQT_SIGNAL(aboutToShow()), TQT_SLOT(slotPopulateSessions()) ); - connect( sessionsMenu, TQT_SIGNAL(activated(int)), TQT_SLOT(slotSessionActivated(int)) ); + connect( sessionsMenu, TQ_SIGNAL(aboutToShow()), TQ_SLOT(slotPopulateSessions()) ); + connect( sessionsMenu, TQ_SIGNAL(activated(int)), TQ_SLOT(slotSessionActivated(int)) ); } if (menuBar) { @@ -464,7 +464,7 @@ void KRootWm::buildMenus() } int lastSep = desktopMenu->insertSeparator(); - if (sessionsMenu && kapp->authorize("switch_user")) + if (sessionsMenu && tdeApp->authorize("switch_user")) { desktopMenu->insertItem(SmallIconSet("switchuser" ), i18n("Switch User"), sessionsMenu); needSeparator = true; @@ -489,7 +489,7 @@ void KRootWm::buildMenus() desktopMenu->removeItem(lastSep); } - connect( desktopMenu, TQT_SIGNAL( aboutToShow() ), this, TQT_SLOT( slotFileNewAboutToShow() ) ); + connect( desktopMenu, TQ_SIGNAL( aboutToShow() ), this, TQ_SLOT( slotFileNewAboutToShow() ) ); if (menuBar) { menuBar->insertItem(i18n("File"), file); @@ -609,16 +609,16 @@ void KRootWm::mousePressed( const TQPoint& _global, int _button ) { if (!desktopMenu) return; // initialisation not yet done switch ( _button ) { - case Qt::LeftButton: + case TQt::LeftButton: if ( m_bShowMenuBar && menuBar ) menuBar->raise(); activateMenu( leftButtonChoice, _global ); break; - case Qt::MidButton: + case TQt::MidButton: activateMenu( middleButtonChoice, _global ); break; - case Qt::RightButton: - if (!kapp->authorize("action/kdesktop_rmb")) return; + case TQt::RightButton: + if (!tdeApp->authorize("action/kdesktop_rmb")) return; activateMenu( rightButtonChoice, _global ); break; default: @@ -637,13 +637,13 @@ void KRootWm::slotWindowList() { else r = desktop->screenGeometry( desktop->screenNumber(TQCursor::pos())); windowListMenu->init(); - disconnect( windowListMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( slotWindowListAboutToShow() ) ); // avoid calling init() twice + disconnect( windowListMenu, TQ_SIGNAL( aboutToShow() ), + this, TQ_SLOT( slotWindowListAboutToShow() ) ); // avoid calling init() twice // windowListMenu->rect() is not valid before showing, use sizeHint() windowListMenu->popup(r.center() - TQRect( TQPoint( 0, 0 ), windowListMenu->sizeHint()).center()); windowListMenu->selectActiveWindow(); // make the popup more useful - connect( windowListMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( slotWindowListAboutToShow() ) ); + connect( windowListMenu, TQ_SIGNAL( aboutToShow() ), + this, TQ_SLOT( slotWindowListAboutToShow() ) ); } void KRootWm::slotSwitchUser() { @@ -657,11 +657,11 @@ void KRootWm::slotSwitchUser() { else r = desktop->screenGeometry( desktop->screenNumber(TQCursor::pos())); slotPopulateSessions(); - disconnect( sessionsMenu, TQT_SIGNAL( aboutToShow() ), - this, TQT_SLOT( slotPopulateSessions() ) ); // avoid calling init() twice + disconnect( sessionsMenu, TQ_SIGNAL( aboutToShow() ), + this, TQ_SLOT( slotPopulateSessions() ) ); // avoid calling init() twice sessionsMenu->popup(r.center() - TQRect( TQPoint( 0, 0 ), sessionsMenu->sizeHint()).center()); - connect( sessionsMenu, TQT_SIGNAL( aboutToShow() ), - TQT_SLOT( slotPopulateSessions() ) ); + connect( sessionsMenu, TQ_SIGNAL( aboutToShow() ), + TQ_SLOT( slotPopulateSessions() ) ); } void KRootWm::slotArrangeByNameCS() @@ -786,12 +786,12 @@ void KRootWm::slotConfigureDesktop() { if (!m_configDialog) { m_configDialog = new KCMultiDialog( (TQWidget*)0, "configureDialog" ); - connect(m_configDialog, TQT_SIGNAL(finished()), this, TQT_SLOT(slotConfigClosed())); + connect(m_configDialog, TQ_SIGNAL(finished()), this, TQ_SLOT(slotConfigClosed())); TQStringList modules = configModules(); for (TQStringList::const_iterator it = modules.constBegin(); it != modules.constEnd(); ++it) { - if (kapp->authorizeControlModule(*it)) + if (tdeApp->authorizeControlModule(*it)) { m_configDialog->addModule(*it); } @@ -815,22 +815,22 @@ void KRootWm::slotToggleDesktopMenu() KDesktopSettings::writeConfig(); TQByteArray data; - kapp->dcopClient()->send( kdesktop_name, "KDesktopIface", "configure()", data); + tdeApp->dcopClient()->send( kdesktop_name, "KDesktopIface", "configure()", data); // for the standalone menubar setting - kapp->dcopClient()->send( "menuapplet*", "menuapplet", "configure()", data ); - kapp->dcopClient()->send( kicker_name, kicker_name, "configureMenubar()", data ); - kapp->dcopClient()->send( "twin*", "", "reconfigure()", data ); + tdeApp->dcopClient()->send( "menuapplet*", "menuapplet", "configure()", data ); + tdeApp->dcopClient()->send( kicker_name, kicker_name, "configureMenubar()", data ); + tdeApp->dcopClient()->send( "twin*", "", "reconfigure()", data ); } void KRootWm::slotUnclutterWindows() { - kapp->dcopClient()->send(twin_name, "KWinInterface", "unclutterDesktop()", TQString("")); + tdeApp->dcopClient()->send(twin_name, "KWinInterface", "unclutterDesktop()", TQString("")); } void KRootWm::slotCascadeWindows() { - kapp->dcopClient()->send(twin_name, "KWinInterface", "cascadeDesktop()", TQString("")); + tdeApp->dcopClient()->send(twin_name, "KWinInterface", "cascadeDesktop()", TQString("")); } @@ -840,7 +840,7 @@ void KRootWm::slotLock() { void KRootWm::slotSave() { - kapp->dcopClient()->send(kdesktop_name, "KScreensaverIface", "save()", TQString("")); + tdeApp->dcopClient()->send(kdesktop_name, "KScreensaverIface", "save()", TQString("")); } diff --git a/kdesktop/krootwm.h b/kdesktop/krootwm.h index 264f3eadb..efdd64c3e 100644 --- a/kdesktop/krootwm.h +++ b/kdesktop/krootwm.h @@ -64,7 +64,7 @@ class KRootWmThreadHelperObject; * This class is the handler for the menus (root popup menu and desktop menubar) */ class KRootWm: public TQObject { - Q_OBJECT + TQ_OBJECT public: KRootWm(SaverEngine*, KDesktop*); diff --git a/kdesktop/kwebdesktop/kwebdesktop.cpp b/kdesktop/kwebdesktop/kwebdesktop.cpp index 1e2499ea2..37358f758 100644 --- a/kdesktop/kwebdesktop/kwebdesktop.cpp +++ b/kdesktop/kwebdesktop/kwebdesktop.cpp @@ -52,10 +52,10 @@ KWebDesktopRun::KWebDesktopRun( KWebDesktop* webDesktop, const KURL & url ) { kdDebug() << "KWebDesktopRun::KWebDesktopRun starting get" << endl; TDEIO::Job * job = TDEIO::get(m_url, false, false); - connect( job, TQT_SIGNAL( result( TDEIO::Job *)), - this, TQT_SLOT( slotFinished(TDEIO::Job *))); - connect( job, TQT_SIGNAL( mimetype( TDEIO::Job *, const TQString &)), - this, TQT_SLOT( slotMimetype(TDEIO::Job *, const TQString &))); + connect( job, TQ_SIGNAL( result( TDEIO::Job *)), + this, TQ_SLOT( slotFinished(TDEIO::Job *))); + connect( job, TQ_SIGNAL( mimetype( TDEIO::Job *, const TQString &)), + this, TQ_SLOT( slotMimetype(TDEIO::Job *, const TQString &))); } void KWebDesktopRun::slotMimetype( TDEIO::Job *job, const TQString &_type ) @@ -79,7 +79,7 @@ void KWebDesktopRun::slotFinished( TDEIO::Job * job ) if (job->error()) { kdDebug() << job->errorString() << endl; - kapp->exit(1); + tdeApp->exit(1); } } @@ -141,7 +141,7 @@ void KWebDesktop::slotCompleted() TQPixmap snapshot = TQPixmap::grabWidget( m_part->widget() ); snapshot.save( m_imageFile, "PNG" ); // And terminate the app. - kapp->quit(); + tdeApp->quit(); } KParts::ReadOnlyPart* KWebDesktop::createPart( const TQString& mimeType ) @@ -166,7 +166,7 @@ KParts::ReadOnlyPart* KWebDesktop::createPart( const TQString& mimeType ) ((TQScrollView *)htmlPart->widget())->setHScrollBarMode( TQScrollView::AlwaysOff ); ((TQScrollView *)htmlPart->widget())->setVScrollBarMode( TQScrollView::AlwaysOff ); - connect( htmlPart, TQT_SIGNAL( completed() ), this, TQT_SLOT( slotCompleted() ) ); + connect( htmlPart, TQ_SIGNAL( completed() ), this, TQ_SLOT( slotCompleted() ) ); m_part = htmlPart; } else { // Try to find an appropriate viewer component @@ -176,13 +176,13 @@ KParts::ReadOnlyPart* KWebDesktop::createPart( const TQString& mimeType ) kdWarning() << "No handler found for " << mimeType << endl; else { kdDebug() << "Loaded " << m_part->className() << endl; - connect( m_part, TQT_SIGNAL( completed() ), - this, TQT_SLOT( slotCompleted() ) ); + connect( m_part, TQ_SIGNAL( completed() ), + this, TQ_SLOT( slotCompleted() ) ); } } if ( m_part ) { - connect( m_part, TQT_SIGNAL( canceled(const TQString &) ), - this, TQT_SLOT( slotCompleted() ) ); + connect( m_part, TQ_SIGNAL( canceled(const TQString &) ), + this, TQ_SLOT( slotCompleted() ) ); } return m_part; } diff --git a/kdesktop/kwebdesktop/kwebdesktop.h b/kdesktop/kwebdesktop/kwebdesktop.h index 2641378cf..686e40297 100644 --- a/kdesktop/kwebdesktop/kwebdesktop.h +++ b/kdesktop/kwebdesktop/kwebdesktop.h @@ -28,7 +28,7 @@ namespace TDEIO { class Job; } class KWebDesktop : public TQObject { - Q_OBJECT + TQ_OBJECT public: KWebDesktop( TQObject* parent, const TQCString & imageFile, int width, int height ) : TQObject( parent ), @@ -51,9 +51,9 @@ private: }; -class KWebDesktopRun : public QObject +class KWebDesktopRun : public TQObject { - Q_OBJECT + TQ_OBJECT public: KWebDesktopRun( KWebDesktop* webDesktop, const KURL & url ); ~KWebDesktopRun() {} diff --git a/kdesktop/lock/CMakeLists.txt b/kdesktop/lock/CMakeLists.txt index 8f3e49e16..abeebb3d2 100644 --- a/kdesktop/lock/CMakeLists.txt +++ b/kdesktop/lock/CMakeLists.txt @@ -41,7 +41,7 @@ set( ${target}_SRCS tde_add_executable( ${target} AUTOMOC SOURCES ${${target}_SRCS} LINK kdesktopsettings-static dmctl-static tdeio-shared Xext ${TDEHW_LIBRARIES} - pthread ${GL_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} ${GL_LIBRARIES} "${LINKER_IMMEDIATE_BINDING_FLAGS}" DESTINATION ${BIN_INSTALL_DIR} ) diff --git a/kdesktop/lock/autologout.cpp b/kdesktop/lock/autologout.cpp index 6e05c439d..ee1d8e1db 100644 --- a/kdesktop/lock/autologout.cpp +++ b/kdesktop/lock/autologout.cpp @@ -67,7 +67,7 @@ AutoLogout::AutoLogout(LockProcess *parent) : TQDialog(parent, "password dialog" unlockDialogLayout->addWidget( frame ); frameLayout = new TQGridLayout(frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint()); - frameLayout->addMultiCellWidget(pixLabel, 0, 2, 0, 0, Qt::AlignCenter | Qt::AlignTop); + frameLayout->addMultiCellWidget(pixLabel, 0, 2, 0, 0, TQt::AlignCenter | TQt::AlignTop); frameLayout->addWidget(greetLabel, 0, 1); frameLayout->addWidget(mStatusLabel, 1, 1); frameLayout->addWidget(infoLabel, 2, 1); @@ -83,7 +83,7 @@ AutoLogout::AutoLogout(LockProcess *parent) : TQDialog(parent, "password dialog" mCountdownTimerId = startTimer(1000/25); - connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity())); + connect(tqApp, TQ_SIGNAL(activity()), TQ_SLOT(slotActivity())); setFixedSize( sizeHint() ); } @@ -119,7 +119,7 @@ void AutoLogout::slotActivity() void AutoLogout::logout() { - TQT_TQOBJECT(this)->killTimers(); + this->killTimers(); DCOPRef("ksmserver","ksmserver").send("logout", 0, 0, 0); } diff --git a/kdesktop/lock/autologout.h b/kdesktop/lock/autologout.h index 89cbb880e..834f4fd0e 100644 --- a/kdesktop/lock/autologout.h +++ b/kdesktop/lock/autologout.h @@ -22,7 +22,7 @@ class TQProgressBar; class AutoLogout : public TQDialog { - Q_OBJECT + TQ_OBJECT public: AutoLogout(LockProcess *parent); diff --git a/kdesktop/lock/infodlg.cpp b/kdesktop/lock/infodlg.cpp index 3efaf060d..a37c92b8e 100644 --- a/kdesktop/lock/infodlg.cpp +++ b/kdesktop/lock/infodlg.cpp @@ -14,7 +14,7 @@ #include <tdelocale.h> #include <kpushbutton.h> #include <kseparator.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeglobalsettings.h> #include <tdeconfig.h> #include <kiconloader.h> @@ -97,7 +97,7 @@ InfoDlg::InfoDlg(LockProcess *parent) layStatus->addWidget( mStatusLabel ); frameLayout = new TQGridLayout( frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint() ); - frameLayout->addMultiCellWidget( mpixLabel, 0, 2, 0, 0, Qt::AlignTop ); + frameLayout->addMultiCellWidget( mpixLabel, 0, 2, 0, 0, TQt::AlignTop ); frameLayout->addLayout( layStatus, 1, 1 ); installEventFilter(this); @@ -111,7 +111,7 @@ InfoDlg::~InfoDlg() void InfoDlg::updateLabel(TQString &txt) { - mStatusLabel->setPaletteForegroundColor(Qt::black); + mStatusLabel->setPaletteForegroundColor(TQt::black); mStatusLabel->setText("<b>" + txt + "</b>"); } diff --git a/kdesktop/lock/infodlg.h b/kdesktop/lock/infodlg.h index 3daf4d2ce..ec5569748 100644 --- a/kdesktop/lock/infodlg.h +++ b/kdesktop/lock/infodlg.h @@ -26,7 +26,7 @@ class TQListView; // class InfoDlg : public TQDialog { - Q_OBJECT + TQ_OBJECT public: InfoDlg(LockProcess *parent); diff --git a/kdesktop/lock/lockdlg.cpp b/kdesktop/lock/lockdlg.cpp index 890aa7c53..c5d3d1aea 100644 --- a/kdesktop/lock/lockdlg.cpp +++ b/kdesktop/lock/lockdlg.cpp @@ -20,8 +20,8 @@ #include <tdelocale.h> #include <kpushbutton.h> #include <kseparator.h> -#include <kstandarddirs.h> -#include <ksimpleconfig.h> +#include <tdestandarddirs.h> +#include <tdesimpleconfig.h> #include <tdeglobalsettings.h> #include <tdeconfig.h> #include <kiconloader.h> @@ -200,7 +200,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin) if (!m_lockStartDT.isNull()) { frameLayout = new TQGridLayout( frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint() ); - frameLayout->addMultiCellWidget( theader, 0, 0, 0, 2, Qt::AlignTop ); + frameLayout->addMultiCellWidget( theader, 0, 0, 0, 2, TQt::AlignTop ); frameLayout->addWidget( greetLabel, 1, 1 ); frameLayout->addWidget( lockDTLabel, 2, 1 ); frameLayout->addItem( greet->getLayoutItem(), 3, 1 ); @@ -210,7 +210,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin) } else { frameLayout = new TQGridLayout( frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint() ); - frameLayout->addMultiCellWidget( theader, 0, 0, 0, 2, Qt::AlignTop ); + frameLayout->addMultiCellWidget( theader, 0, 0, 0, 2, TQt::AlignTop ); frameLayout->addWidget( greetLabel, 1, 1 ); frameLayout->addItem( greet->getLayoutItem(), 2, 1 ); frameLayout->addLayout( layStatus, 3, 1 ); @@ -220,7 +220,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin) } else { frameLayout = new TQGridLayout( frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint() ); - frameLayout->addMultiCellWidget( pixLabel, 0, 2, 0, 0, Qt::AlignTop ); + frameLayout->addMultiCellWidget( pixLabel, 0, 2, 0, 0, TQt::AlignTop ); frameLayout->addWidget( greetLabel, 0, 1 ); frameLayout->addItem( greet->getLayoutItem(), 1, 1 ); frameLayout->addLayout( layStatus, 2, 1 ); @@ -237,14 +237,14 @@ void PasswordDlg::init(GreeterPluginHandle *plugin) } setTabOrder( mNewSessButton, mLayoutButton ); - connect(mLayoutButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(layoutClicked())); + connect(mLayoutButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(layoutClicked())); if (show_cancel_button) { - connect(cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject())); + connect(cancel, TQ_SIGNAL(clicked()), TQ_SLOT(reject())); } - connect(ok, TQT_SIGNAL(clicked()), TQT_SLOT(slotOK())); - connect(mNewSessButton, TQT_SIGNAL(clicked()), TQT_SLOT(slotSwitchUser())); + connect(ok, TQ_SIGNAL(clicked()), TQ_SLOT(slotOK())); + connect(mNewSessButton, TQ_SIGNAL(clicked()), TQ_SLOT(slotSwitchUser())); - if (!DM().isSwitchable() || !kapp->authorize("switch_user")) { + if (!DM().isSwitchable() || !tdeApp->authorize("switch_user")) { mNewSessButton->hide(); } @@ -253,7 +253,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin) mFailedTimerId = 0; mTimeoutTimerId = startTimer(PASSDLG_HIDE_TIMEOUT); - connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity()) ); + connect(tqApp, TQ_SIGNAL(activity()), TQ_SLOT(slotActivity()) ); greet->setInfoMessageDisplay(showInfoMessages); greet->start(); @@ -329,12 +329,12 @@ void PasswordDlg::setLayoutText( const TQString &txt ) void PasswordDlg::updateLabel() { if (mUnlockingFailed) { - mStatusLabel->setPaletteForegroundColor(Qt::black); + mStatusLabel->setPaletteForegroundColor(TQt::black); mStatusLabel->setText(i18n("<b>Unlocking failed</b>")); // mStatusLabel->show(); } else if (mCapsLocked) { - mStatusLabel->setPaletteForegroundColor(Qt::red); + mStatusLabel->setPaletteForegroundColor(TQt::red); mStatusLabel->setText(i18n("<b>Warning: Caps Lock on</b>")); // mStatusLabel->show(); } @@ -568,7 +568,7 @@ void PasswordDlg::handleVerify() TQString autoPIN = cdevice->autoPIN(); if (autoPIN != TQString::null) { greet->setPassword(autoPIN); - TQTimer::singleShot(0, this, SLOT(slotOK())); + TQTimer::singleShot(0, this, TQ_SLOT(slotOK())); } } mCardLoginInProgress = false; @@ -712,12 +712,12 @@ void PasswordDlg::gplugMsgBox( TQMessageBox::Icon type, const TQString &text ) KPushButton *button = new KPushButton( KStdGuiItem::ok(), winFrame ); button->setDefault( true ); button->setSizePolicy( TQSizePolicy( TQSizePolicy::Preferred, TQSizePolicy::Preferred ) ); - connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( accept() ) ); + connect( button, TQ_SIGNAL( clicked() ), TQ_SLOT( accept() ) ); TQGridLayout *grid = new TQGridLayout( winFrame, 2, 2, 10 ); - grid->addWidget( label1, 0, 0, Qt::AlignCenter ); - grid->addWidget( label2, 0, 1, Qt::AlignCenter ); - grid->addMultiCellWidget( button, 1,1, 0,1, Qt::AlignCenter ); + grid->addWidget( label1, 0, 0, TQt::AlignCenter ); + grid->addWidget( label2, 0, 1, TQt::AlignCenter ); + grid->addMultiCellWidget( button, 1,1, 0,1, TQt::AlignCenter ); static_cast< LockProcess* >(parent())->execDialog( &dialog ); } @@ -783,16 +783,16 @@ void PasswordDlg::slotStartNewSession() TQLabel *label2 = new TQLabel( qt_text, winFrame ); KPushButton *okbutton = new KPushButton( KGuiItem(i18n("&Start New Session"), "fork"), winFrame ); okbutton->setDefault( true ); - connect( okbutton, TQT_SIGNAL( clicked() ), dialog, TQT_SLOT( accept() ) ); + connect( okbutton, TQ_SIGNAL( clicked() ), dialog, TQ_SLOT( accept() ) ); KPushButton *cbutton = new KPushButton( KStdGuiItem::cancel(), winFrame ); - connect( cbutton, TQT_SIGNAL( clicked() ), dialog, TQT_SLOT( reject() ) ); + connect( cbutton, TQ_SIGNAL( clicked() ), dialog, TQ_SLOT( reject() ) ); TQBoxLayout *mbox = new TQVBoxLayout( winFrame, KDialog::marginHint(), KDialog::spacingHint() ); TQGridLayout *grid = new TQGridLayout( mbox, 2, 2, 2 * KDialog::spacingHint() ); grid->setMargin( KDialog::marginHint() ); - grid->addWidget( label1, 0, 0, Qt::AlignCenter ); - grid->addWidget( label2, 0, 1, Qt::AlignCenter ); + grid->addWidget( label1, 0, 0, TQt::AlignCenter ); + grid->addWidget( label2, 0, 1, TQt::AlignCenter ); TQCheckBox *cb = new TQCheckBox( i18n("&Do not ask again"), winFrame ); grid->addMultiCellWidget( cb, 1,1, 0,1 ); @@ -901,8 +901,8 @@ void PasswordDlg::slotSwitchUser() SessList sess; if (dm.localSessions( sess )) { lv = new TQListView( winFrame ); - connect( lv, TQT_SIGNAL(doubleClicked(TQListViewItem *, const TQPoint&, int)), TQT_SLOT(slotSessionActivated()) ); - connect( lv, TQT_SIGNAL(doubleClicked(TQListViewItem *, const TQPoint&, int)), &dialog, TQT_SLOT(accept()) ); + connect( lv, TQ_SIGNAL(doubleClicked(TQListViewItem *, const TQPoint&, int)), TQ_SLOT(slotSessionActivated()) ); + connect( lv, TQ_SIGNAL(doubleClicked(TQListViewItem *, const TQPoint&, int)), &dialog, TQ_SLOT(accept()) ); lv->setAllColumnsShowFocus( true ); lv->addColumn( i18n("Session") ); lv->addColumn( i18n("Location") ); @@ -933,16 +933,16 @@ void PasswordDlg::slotSwitchUser() vbox1->addWidget( lv ); btn = new KPushButton( KGuiItem(i18n("session", "&Activate"), "fork"), winFrame ); - connect( btn, TQT_SIGNAL(clicked()), TQT_SLOT(slotSessionActivated()) ); - connect( btn, TQT_SIGNAL(clicked()), &dialog, TQT_SLOT(accept()) ); + connect( btn, TQ_SIGNAL(clicked()), TQ_SLOT(slotSessionActivated()) ); + connect( btn, TQ_SIGNAL(clicked()), &dialog, TQ_SLOT(accept()) ); vbox2->addWidget( btn ); vbox2->addStretch( 2 ); } - if (kapp->authorize("start_new_session") && (p = dm.numReserve()) >= 0) { + if (tdeApp->authorize("start_new_session") && (p = dm.numReserve()) >= 0) { btn = new KPushButton( KGuiItem(i18n("Start &New Session"), "fork"), winFrame ); - connect( btn, TQT_SIGNAL(clicked()), TQT_SLOT(slotStartNewSession()) ); - connect( btn, TQT_SIGNAL(clicked()), &dialog, TQT_SLOT(accept()) ); + connect( btn, TQ_SIGNAL(clicked()), TQ_SLOT(slotStartNewSession()) ); + connect( btn, TQ_SIGNAL(clicked()), &dialog, TQ_SLOT(accept()) ); if (!p) btn->setEnabled( false ); vbox2->addWidget( btn ); @@ -950,7 +950,7 @@ void PasswordDlg::slotSwitchUser() } btn = new KPushButton( KStdGuiItem::cancel(), winFrame ); - connect( btn, TQT_SIGNAL(clicked()), &dialog, TQT_SLOT(reject()) ); + connect( btn, TQ_SIGNAL(clicked()), &dialog, TQ_SLOT(reject()) ); vbox2->addWidget( btn ); dialog.setFixedSize( dialog.sizeHint() ); @@ -987,7 +987,7 @@ void PasswordDlg::attemptCardLogin() { #endif // Make sure card logins are enabled before attempting one - KSimpleConfig *systemconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/ldap/ldapconfigrc" )); + TDESimpleConfig *systemconfig = new TDESimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/ldap/ldapconfigrc" )); systemconfig->setGroup(NULL); bool enabled = systemconfig->readBoolEntry("EnablePKCS11Login", false); delete systemconfig; @@ -1015,7 +1015,7 @@ void PasswordDlg::attemptCardLogin() { // Bypass initial password prompt greet->start(); greet->setPassword(""); - TQTimer::singleShot(0, this, SLOT(slotOK())); + TQTimer::singleShot(0, this, TQ_SLOT(slotOK())); #endif } diff --git a/kdesktop/lock/lockdlg.h b/kdesktop/lock/lockdlg.h index 571d825fa..3f8500a42 100644 --- a/kdesktop/lock/lockdlg.h +++ b/kdesktop/lock/lockdlg.h @@ -33,7 +33,7 @@ class TQListView; // class PasswordDlg : public TQDialog, public KGreeterPluginHandler { - Q_OBJECT + TQ_OBJECT public: PasswordDlg(LockProcess *parent, GreeterPluginHandle *plugin); diff --git a/kdesktop/lock/lockprocess.cpp b/kdesktop/lock/lockprocess.cpp index 96955b6de..2ad89f5ab 100644 --- a/kdesktop/lock/lockprocess.cpp +++ b/kdesktop/lock/lockprocess.cpp @@ -38,7 +38,7 @@ #include <dmctl.h> #include <dcopref.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeapplication.h> #include <kservicegroup.h> #include <kdebug.h> @@ -85,7 +85,7 @@ #include <sys/types.h> #include <fcntl.h> -#include <kcrash.h> +#include <tdecrash.h> #include <pthread.h> @@ -151,14 +151,6 @@ Atom kde_wm_system_modal_notification = 0; Atom kde_wm_transparent_to_desktop = 0; Atom kde_wm_transparent_to_black = 0; -static void segv_handler(int) -{ - kdError(KDESKTOP_DEBUG_ID) << "A fatal exception was encountered." - << " Trapping and ignoring it so as not to compromise desktop security..." - << kdBacktrace() << endl; - sleep(1); -} - extern Atom tqt_wm_state; extern bool trinity_desktop_lock_use_system_modal_dialogs; extern bool trinity_desktop_lock_delay_screensaver_start; @@ -166,24 +158,32 @@ 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 LockProcess* trinity_desktop_lock_process; +extern bool trinity_desktop_lock_failed_grab; extern bool argb_visual; extern pid_t kdesktop_pid; extern TQXLibWindowList trinity_desktop_lock_hidden_window_list; -bool trinity_desktop_lock_autohide_lockdlg = TRUE; +bool trinity_desktop_lock_autohide_lockdlg = true; + +static void segv_handler(int) +{ + kdError(KDESKTOP_DEBUG_ID) << "A fatal exception was encountered." + << " Trapping and ignoring it so as not to compromise desktop security..." + << kdBacktrace() << endl; + + sleep(1); +} #define ENABLE_CONTINUOUS_LOCKDLG_DISPLAY \ -if (!mForceContinualLockDisplayTimer->isActive()) mForceContinualLockDisplayTimer->start(100, FALSE); \ -trinity_desktop_lock_autohide_lockdlg = FALSE; \ +if (!mForceContinualLockDisplayTimer->isActive()) mForceContinualLockDisplayTimer->start(100, false); \ +trinity_desktop_lock_autohide_lockdlg = false; \ mHackDelayStartupTimer->stop(); #define DISABLE_CONTINUOUS_LOCKDLG_DISPLAY \ mForceContinualLockDisplayTimer->stop(); \ -trinity_desktop_lock_autohide_lockdlg = TRUE; \ +trinity_desktop_lock_autohide_lockdlg = true; \ mHackDelayStartupTimer->stop(); //=========================================================================== @@ -234,7 +234,9 @@ LockProcess::LockProcess() m_notifyReadyRequested(false), m_loginCardDevice(NULL), m_maskWidget(NULL), - m_saverRootWindow(0) + m_saverRootWindow(0), + mControlPipeHandler(nullptr), + mControlPipeHandlerThread(nullptr) { #ifdef KEEP_MOUSE_UNGRABBED setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize); @@ -247,7 +249,7 @@ LockProcess::LockProcess() kde_wm_transparent_to_desktop = XInternAtom(tqt_xdisplay(), "_TDE_TRANSPARENT_TO_DESKTOP", False); kde_wm_transparent_to_black = XInternAtom(tqt_xdisplay(), "_TDE_TRANSPARENT_TO_BLACK", False); - kapp->installX11EventFilter(this); + tdeApp->installX11EventFilter(this); mForceContinualLockDisplayTimer = new TQTimer( this ); mHackDelayStartupTimer = new TQTimer( this ); @@ -256,7 +258,7 @@ LockProcess::LockProcess() if (!argb_visual) { // Try to get the root pixmap if (!m_rootPixmap) m_rootPixmap = new KRootPixmap(this); - connect(m_rootPixmap, TQT_SIGNAL(backgroundUpdated(const TQPixmap &)), this, TQT_SLOT(slotPaintBackground(const TQPixmap &))); + connect(m_rootPixmap, TQ_SIGNAL(backgroundUpdated(const TQPixmap &)), this, TQ_SLOT(slotPaintBackground(const TQPixmap &))); m_rootPixmap->setCustomPainting(true); m_rootPixmap->start(); } @@ -305,9 +307,9 @@ LockProcess::LockProcess() TDEGenericHardwareList cardReaderList = hwdevices->listByDeviceClass(TDEGenericDeviceType::CryptographicCard); for (hwdevice = cardReaderList.first(); hwdevice; hwdevice = cardReaderList.next()) { TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice); - // connect(cdevice, SIGNAL(pinRequested(TQString,TDECryptographicCardDevice*)), this, SLOT(cryptographicCardPinRequested(TQString,TDECryptographicCardDevice*))); - connect(cdevice, TQT_SIGNAL(certificateListAvailable(TDECryptographicCardDevice*)), this, TQT_SLOT(cryptographicCardInserted(TDECryptographicCardDevice*))); - connect(cdevice, TQT_SIGNAL(cardRemoved(TDECryptographicCardDevice*)), this, TQT_SLOT(cryptographicCardRemoved(TDECryptographicCardDevice*))); + // connect(cdevice, TQ_SIGNAL(pinRequested(TQString,TDECryptographicCardDevice*)), this, TQ_SLOT(cryptographicCardPinRequested(TQString,TDECryptographicCardDevice*))); + connect(cdevice, TQ_SIGNAL(certificateListAvailable(TDECryptographicCardDevice*)), this, TQ_SLOT(cryptographicCardInserted(TDECryptographicCardDevice*))); + connect(cdevice, TQ_SIGNAL(cardRemoved(TDECryptographicCardDevice*)), this, TQ_SLOT(cryptographicCardRemoved(TDECryptographicCardDevice*))); cdevice->enableCardMonitoring(true); // cdevice->enablePINEntryCallbacks(true); } @@ -331,8 +333,6 @@ LockProcess::~LockProcess() mControlPipeHandler->terminateThread(); mControlPipeHandlerThread->wait(); delete mControlPipeHandler; -// delete mControlPipeHandlerThread; - if (resizeTimer != NULL) { resizeTimer->stop(); delete resizeTimer; @@ -388,12 +388,12 @@ void LockProcess::init(bool child, bool useBlankOnly) generateBackingImages(); // Connect all signals - connect( mForceContinualLockDisplayTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(displayLockDialogIfNeeded()) ); - connect( mHackDelayStartupTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(closeDialogAndStartHack()) ); - connect( mEnsureVRootWindowSecurityTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(repaintRootWindowIfNeeded()) ); - connect(tqApp, TQT_SIGNAL(mouseInteraction(XEvent *)), TQT_SLOT(slotMouseActivity(XEvent *))); - connect(&mHackProc, TQT_SIGNAL(processExited(TDEProcess *)), TQT_SLOT(hackExited(TDEProcess *))); - connect(&mSuspendTimer, TQT_SIGNAL(timeout()), TQT_SLOT(suspend())); + connect( mForceContinualLockDisplayTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(displayLockDialogIfNeeded()) ); + connect( mHackDelayStartupTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(closeDialogAndStartHack()) ); + connect( mEnsureVRootWindowSecurityTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(repaintRootWindowIfNeeded()) ); + connect(tqApp, TQ_SIGNAL(mouseInteraction(XEvent *)), TQ_SLOT(slotMouseActivity(XEvent *))); + connect(&mHackProc, TQ_SIGNAL(processExited(TDEProcess *)), TQ_SLOT(hackExited(TDEProcess *))); + connect(&mSuspendTimer, TQ_SIGNAL(timeout()), TQ_SLOT(suspend())); #ifdef HAVE_DPMS //if the user decided that the screensaver should run independent from @@ -403,7 +403,7 @@ void LockProcess::init(bool child, bool useBlankOnly) CARD16 state; if (DPMSInfo(tqt_xdisplay(), &state, &on)) { if (on) { - connect(&mCheckDPMS, TQT_SIGNAL(timeout()), TQT_SLOT(checkDPMSActive())); + connect(&mCheckDPMS, TQ_SIGNAL(timeout()), TQ_SLOT(checkDPMSActive())); // we can save CPU if we stop it as quickly as possible // but we waste CPU if we check too often -> so take 10s mCheckDPMS.start(10000); @@ -412,9 +412,7 @@ void LockProcess::init(bool child, bool useBlankOnly) } #endif -#if (TQT_VERSION-0 >= 0x030200) // XRANDR support - connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized())); -#endif + connect( tdeApp->desktop(), TQ_SIGNAL( resized( int )), TQ_SLOT( desktopResized())); if (!trinity_desktop_lock_use_system_modal_dialogs) { setWFlags((WFlags)WX11BypassWM); @@ -435,21 +433,25 @@ void LockProcess::init(bool child, bool useBlankOnly) mControlPipeHandler = new ControlPipeHandlerObject(); mControlPipeHandler->mParent = this; mControlPipeHandler->moveToThread(mControlPipeHandlerThread); - TQObject::connect(mControlPipeHandler, SIGNAL(processCommand(TQString)), this, SLOT(processInputPipeCommand(TQString))); - TQTimer::singleShot(0, mControlPipeHandler, SLOT(run())); + TQObject::connect(mControlPipeHandler, TQ_SIGNAL(processCommand(TQString)), this, TQ_SLOT(processInputPipeCommand(TQString))); + TQTimer::singleShot(0, mControlPipeHandler, TQ_SLOT(run())); mControlPipeHandlerThread->start(); + // If the lock process terminates before 'mControlPipeHandler::run()' has been called, the + // 'mControlPipeHandlerThread' thread would not terminate and the lock process would have a + // dirty exit, potentially leaving 'kdesktop' in a dirty state that prevents the lock from + // working correctly till 'kdesktop' is killed and restarted. By forcing a call to 'processEvents()' + // we make sure to handle pending timer events and execute the required call + tdeApp->processEvents(); } static int signal_pipe[2]; static void sigterm_handler(int) { - if ((!trinity_desktop_lock_process) || (!trinity_desktop_lock_process->inSecureDialog())) { - // Exit uncleanly - char tmp = 'U'; - if (::write( signal_pipe[1], &tmp, 1) == -1) { - // Error handler to shut up gcc warnings - } + // Exit uncleanly + char tmp = 'U'; + if (::write( signal_pipe[1], &tmp, 1) == -1) { + // Error handler to shut up gcc warnings } } @@ -463,7 +465,7 @@ static void sighup_handler(int) bool LockProcess::closeCurrentWindow() { - mClosingWindows = TRUE; + mClosingWindows = true; if (currentDialog != NULL) { mForceReject = true; if (dynamic_cast<SAKDlg*>(currentDialog)) { @@ -478,12 +480,12 @@ bool LockProcess::closeCurrentWindow() } if( mDialogs.isEmpty() ) { - mClosingWindows = FALSE; + mClosingWindows = false; mForceReject = false; return false; } else { - mClosingWindows = TRUE; + mClosingWindows = true; return true; } } @@ -533,8 +535,8 @@ void LockProcess::setupSignals() if (pipe(signal_pipe) == -1) { // Error handler to shut up gcc warnings } - TQSocketNotifier* notif = new TQSocketNotifier(signal_pipe[0], TQSocketNotifier::Read, TQT_TQOBJECT(this) ); - connect( notif, TQT_SIGNAL(activated(int)), TQT_SLOT(signalPipeSignal())); + TQSocketNotifier* notif = new TQSocketNotifier(signal_pipe[0], TQSocketNotifier::Read, this ); + connect( notif, TQ_SIGNAL(activated(int)), TQ_SLOT(signalPipeSignal())); } @@ -552,9 +554,11 @@ void LockProcess::signalPipeSignal() startLock(); } else if( tmp == 'U' ) { - // Exit uncleanly - quitSaver(); - exit(1); + if (!inSecureDialog()) { + // Exit uncleanly + quitSaver(); + exit(1); + } } } @@ -566,7 +570,7 @@ bool LockProcess::lock() m_startupStatusDialog->setStatusMessage(i18n("Securing desktop session").append("...")); m_startupStatusDialog->show(); m_startupStatusDialog->setActiveWindow(); - tqApp->processEvents(); + tdeApp->processEvents(); #endif if (startSaver(true)) { @@ -577,7 +581,7 @@ bool LockProcess::lock() // selecting "lock screen", that looks really untidy. mBusy = true; if (startLock()) { - TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed())); + TQTimer::singleShot(1000, this, TQ_SLOT(slotDeadTimePassed())); return true; } stopSaver(); @@ -598,7 +602,7 @@ bool LockProcess::defaultSave() mOverrideHackStartupEnabled = true; if (startSaver()) { if (mLockGrace >= 0) { - TQTimer::singleShot(mLockGrace, this, TQT_SLOT(startLock())); + TQTimer::singleShot(mLockGrace, this, TQ_SLOT(startLock())); } return true; } @@ -618,18 +622,18 @@ void LockProcess::quitSaver() { DISABLE_CONTINUOUS_LOCKDLG_DISPLAY if (closeCurrentWindow()) { - TQTimer::singleShot( 0, this, SLOT(quitSaver()) ); + TQTimer::singleShot( 0, this, TQ_SLOT(quitSaver()) ); return; } stopSaver(); - kapp->quit(); + tdeApp->quit(); } //--------------------------------------------------------------------------- void LockProcess::startSecureDialog() { if ((backingPixmap.isNull()) && (mBackingStartupDelayTimer < 100)) { - TQTimer::singleShot(10, this, TQT_SLOT(startSecureDialog())); + TQTimer::singleShot(10, this, TQ_SLOT(startSecureDialog())); mBackingStartupDelayTimer++; return; } @@ -650,7 +654,7 @@ void LockProcess::startSecureDialog() mInSecureDialog = false; if (ret == 0) { mClosingWindows = 1; - kapp->quit(); + tdeApp->quit(); } if (ret == 1) { // In case of a forced lock we don't react to events during @@ -661,18 +665,18 @@ void LockProcess::startSecureDialog() mBusy = true; trinity_desktop_lock_forced = true; // Make sure the cursor is not showing busy status - setCursor( tqarrowCursor ); + setCursor( TQt::arrowCursor ); if (startLock()) { if (trinity_desktop_lock_delay_screensaver_start) { mBusy = false; } else { - TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed())); + TQTimer::singleShot(1000, this, TQ_SLOT(slotDeadTimePassed())); } if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced && trinity_desktop_lock_use_system_modal_dialogs) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { if (mHackStartupEnabled == true) { @@ -681,7 +685,7 @@ void LockProcess::startSecureDialog() else { if (trinity_desktop_lock_use_system_modal_dialogs == true) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { startHack(); @@ -699,18 +703,18 @@ void LockProcess::startSecureDialog() if (system("ksysguard &") == -1) { // Error handler to shut up gcc warnings } - kapp->quit(); + tdeApp->quit(); } if (ret == 3) { mClosingWindows = 1; DCOPRef("ksmserver","ksmserver").send("logout", (int)TDEApplication::ShutdownConfirmYes, (int)TDEApplication::ShutdownTypeNone, (int)TDEApplication::ShutdownModeInteractive); - kapp->quit(); + tdeApp->quit(); } // FIXME // Handle remaining case (switch user) if (forcecontdisp) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } stopSaver(); } @@ -722,13 +726,13 @@ bool LockProcess::runSecureDialog() m_startupStatusDialog->setStatusMessage(i18n("Securing desktop session").append("...")); m_startupStatusDialog->show(); m_startupStatusDialog->setActiveWindow(); - tqApp->processEvents(); + tdeApp->processEvents(); #endif mInSecureDialog = true; if (startSaver()) { mBackingStartupDelayTimer = 0; - TQTimer::singleShot(0, this, TQT_SLOT(startSecureDialog())); + TQTimer::singleShot(0, this, TQ_SLOT(startSecureDialog())); return true; } else { @@ -798,9 +802,9 @@ void LockProcess::readSaver() if (!mSaver.isEmpty()) { TQString file = locate("scrsav", mSaver); - bool opengl = kapp->authorize("opengl_screensavers"); - bool manipulatescreen = kapp->authorize("manipulatescreen_screensavers"); - KDesktopFile config(file, true); + bool opengl = tdeApp->authorize("opengl_screensavers"); + bool manipulatescreen = tdeApp->authorize("manipulatescreen_screensavers"); + TDEDesktopFile config(file, true); if (config.readEntry("X-TDE-Type").utf8() != 0) { TQString saverType = config.readEntry("X-TDE-Type").utf8(); TQStringList saverTypes = TQStringList::split(";", saverType); @@ -1040,7 +1044,7 @@ void LockProcess::desktopResized() } else { mEnsureScreenHiddenTimer = new TQTimer( this ); - connect( mEnsureScreenHiddenTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotForcePaintBackground()) ); + connect( mEnsureScreenHiddenTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotForcePaintBackground()) ); } mEnsureScreenHiddenTimer->start(DESKTOP_WALLPAPER_OBTAIN_TIMEOUT_MS, true); } @@ -1063,9 +1067,9 @@ void LockProcess::desktopResized() // being displayed, so we finish the hack restarting/display prettying operations in a separate timed slot if (resizeTimer == NULL) { resizeTimer = new TQTimer( this ); - connect( resizeTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(doDesktopResizeFinish()) ); + connect( resizeTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(doDesktopResizeFinish()) ); } - resizeTimer->start( 100, TRUE ); // 100 millisecond single shot timer; should allow display switching operations to finish before hack is started + resizeTimer->start( 100, true ); // 100 millisecond single shot timer; should allow display switching operations to finish before hack is started } void LockProcess::doDesktopResizeFinish() @@ -1075,7 +1079,7 @@ void LockProcess::doDesktopResizeFinish() } mDialogControlLock = true; if (closeCurrentWindow()) { - TQTimer::singleShot( 0, this, SLOT(doDesktopResizeFinish()) ); + TQTimer::singleShot( 0, this, TQ_SLOT(doDesktopResizeFinish()) ); mDialogControlLock = false; return; } @@ -1084,7 +1088,7 @@ void LockProcess::doDesktopResizeFinish() // Restart the hack as the window size is now different if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_use_system_modal_dialogs) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { if (mHackStartupEnabled == true) { @@ -1093,7 +1097,7 @@ void LockProcess::doDesktopResizeFinish() else { if (trinity_desktop_lock_use_system_modal_dialogs == true) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { startHack(); @@ -1243,10 +1247,10 @@ bool LockProcess::grabMouse() { HANDLE cursorHandle; if (mHackActive) { - cursorHandle = TQCursor(tqblankCursor).handle(); + cursorHandle = TQCursor(TQt::blankCursor).handle(); } else { - cursorHandle = TQCursor(tqbusyCursor).handle(); + cursorHandle = TQCursor(TQt::busyCursor).handle(); } int rv = XGrabPointer( tqt_xdisplay(), TQApplication::desktop()->winId(), True, GRABEVENTS, GrabModeAsync, GrabModeAsync, None, @@ -1343,6 +1347,7 @@ bool LockProcess::startSaver(bool notify_ready) if (!child_saver && !grabInput()) { kdWarning(KDESKTOP_DEBUG_ID) << "LockProcess::startSaver() grabInput() failed!!!!" << endl; + trinity_desktop_lock_failed_grab = true; return false; } mBusy = false; @@ -1353,8 +1358,8 @@ bool LockProcess::startSaver(bool notify_ready) saveVRoot(); if (mParent) { - TQSocketNotifier *notifier = new TQSocketNotifier(mParent, TQSocketNotifier::Read, TQT_TQOBJECT(this), "notifier"); - connect(notifier, TQT_SIGNAL( activated (int)), TQT_SLOT( quitSaver())); + TQSocketNotifier *notifier = new TQSocketNotifier(mParent, TQSocketNotifier::Read, this, "notifier"); + connect(notifier, TQ_SIGNAL( activated (int)), TQ_SLOT( quitSaver())); } createSaverWindow(); move(0, 0); @@ -1370,7 +1375,8 @@ bool LockProcess::startSaver(bool notify_ready) slotPaintBackground(rootWinSnapShot); } - if (((!(trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced)) && (!mInSecureDialog)) && (mHackStartupEnabled || mOverrideHackStartupEnabled)) { + if (!(trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced) && !mInSecureDialog && + (mHackStartupEnabled || mOverrideHackStartupEnabled)) { if (argb_visual) { setTransparentBackgroundARGB(); } @@ -1397,10 +1403,10 @@ bool LockProcess::startSaver(bool notify_ready) } } - if (mInSecureDialog == FALSE) { + if (!mInSecureDialog) { if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced && trinity_desktop_lock_use_system_modal_dialogs) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { if (mHackStartupEnabled || mOverrideHackStartupEnabled) { @@ -1410,7 +1416,7 @@ bool LockProcess::startSaver(bool notify_ready) else { if (trinity_desktop_lock_use_system_modal_dialogs == true) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { startHack(); @@ -1529,7 +1535,7 @@ void LockProcess::closeDialogAndStartHack() // Make sure saver will attempt to start again after DPMS wakeup // This is related to Bug 1475 ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); // Should not start saver here, because the DPMS check method below would turn it right back off! // This is related to Bug 1475 return; @@ -1542,7 +1548,7 @@ void LockProcess::closeDialogAndStartHack() DISABLE_CONTINUOUS_LOCKDLG_DISPLAY mSuspended = true; if (closeCurrentWindow()) { - TQTimer::singleShot( 0, this, SLOT(closeDialogAndStartHack()) ); + TQTimer::singleShot( 0, this, TQ_SLOT(closeDialogAndStartHack()) ); } else { resume(true); @@ -1577,10 +1583,10 @@ void LockProcess::repaintRootWindowIfNeeded() bool LockProcess::startHack() { - mHackActive = TRUE; + mHackActive = true; if ((mEnsureVRootWindowSecurityTimer) && (!mEnsureVRootWindowSecurityTimer->isActive())) { - mEnsureVRootWindowSecurityTimer->start(250, FALSE); + mEnsureVRootWindowSecurityTimer->start(250, false); } if (currentDialog || (!mDialogs.isEmpty())) { @@ -1602,8 +1608,8 @@ bool LockProcess::startHack() return false; } - setCursor( tqblankCursor ); - XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(tqblankCursor).handle(), CurrentTime); + setCursor( TQt::blankCursor ); + XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(TQt::blankCursor).handle(), CurrentTime); if (mSaverExec.isEmpty()) { return false; @@ -1659,7 +1665,7 @@ bool LockProcess::startHack() mSuspended = false; } - XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(tqblankCursor).handle(), CurrentTime); + XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(TQt::blankCursor).handle(), CurrentTime); if (mHackProc.start() == true) { #ifdef HAVE_SETPRIORITY setpriority(PRIO_PROCESS, mHackProc.pid(), mPriority); @@ -1669,7 +1675,7 @@ bool LockProcess::startHack() if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced) { // Close any active dialogs if (closeCurrentWindow()) { - TQTimer::singleShot( 0, this, SLOT(closeCurrentWindow()) ); + TQTimer::singleShot( 0, this, TQ_SLOT(closeCurrentWindow()) ); } } if (m_startupStatusDialog) { m_startupStatusDialog->closeSMDialog(); m_startupStatusDialog=NULL; } @@ -1709,7 +1715,7 @@ bool LockProcess::startHack() } if (trinity_desktop_lock_use_system_modal_dialogs) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } saverReadyIfNeeded(); } @@ -1733,9 +1739,9 @@ void LockProcess::stopHack() mHackProc.kill(SIGKILL); } } - setCursor( tqarrowCursor ); + setCursor( TQt::arrowCursor ); - mHackActive = FALSE; + mHackActive = false; } //--------------------------------------------------------------------------- @@ -1744,7 +1750,7 @@ void LockProcess::hackExited(TDEProcess *) { // Hack exited while we're supposed to be saving the screen. // Make sure the saver window is black. - mHackActive = FALSE; + mHackActive = false; usleep(100); TQApplication::syncX(); if (!trinity_desktop_lock_use_system_modal_dialogs) { @@ -1779,7 +1785,7 @@ void LockProcess::hackExited(TDEProcess *) if (!mSuspended) { if (trinity_desktop_lock_use_system_modal_dialogs) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } } saverReadyIfNeeded(); @@ -1791,19 +1797,17 @@ void LockProcess::displayLockDialogIfNeeded() m_startupStatusDialog->closeSMDialog(); m_startupStatusDialog = NULL; } - if (!mInSecureDialog) { - if (trinity_desktop_lock_use_system_modal_dialogs) { - if (!mBusy) { - mBusy = true; - if (mLocked) { - if (checkPass()) { - mClosingWindows = true; - stopSaver(); - kapp->quit(); - } + if (!mInSecureDialog && trinity_desktop_lock_use_system_modal_dialogs) { + if (!mBusy) { + mBusy = true; + if (mLocked) { + if (checkPass()) { + mClosingWindows = true; + stopSaver(); + tdeApp->quit(); } - mBusy = false; } + mBusy = false; } } } @@ -1816,7 +1820,7 @@ void LockProcess::suspend() stopHack(); ENABLE_CONTINUOUS_LOCKDLG_DISPLAY if (mHackStartupEnabled) { - mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } } else { @@ -1834,7 +1838,7 @@ void LockProcess::suspend() } hackstat[8191] = 0; hackStatus = hackstat; - hackStatus = hackStatus.remove(TQRegExp("(*) ", TRUE, TRUE)); + hackStatus = hackStatus.remove(TQRegExp("(*) ", true, true)); TQStringList hackStatusList = TQStringList::split(" ", hackStatus); hackStatus = (*(hackStatusList.at(1))); } @@ -1989,7 +1993,7 @@ int LockProcess::execDialog( TQDialog *dlg ) if (mDialogs.isEmpty()) { suspend(); - XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(tqarrowCursor).handle(), CurrentTime); + XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(TQt::arrowCursor).handle(), CurrentTime); } mDialogs.prepend( dlg ); fakeFocusIn( dlg->winId()); @@ -2016,20 +2020,20 @@ int LockProcess::execDialog( TQDialog *dlg ) if( mDialogs.isEmpty() ) { HANDLE cursorHandle; if (mHackActive) { - cursorHandle = TQCursor(tqblankCursor).handle(); + cursorHandle = TQCursor(TQt::blankCursor).handle(); } else { - cursorHandle = TQCursor(tqbusyCursor).handle(); + cursorHandle = TQCursor(TQt::busyCursor).handle(); } XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, cursorHandle, CurrentTime); if (trinity_desktop_lock_use_system_modal_dialogs) { // Slight delay before screensaver resume to allow the dialog window to fully disappear if (hackResumeTimer == NULL) { hackResumeTimer = new TQTimer( this ); - connect( hackResumeTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(resumeUnforced()) ); + connect( hackResumeTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(resumeUnforced()) ); } if (mResizingDesktopLock == false) { - hackResumeTimer->start( 10, TRUE ); + hackResumeTimer->start( 10, true ); } } else { @@ -2046,7 +2050,7 @@ int LockProcess::execDialog( TQDialog *dlg ) void LockProcess::slotForcePaintBackground() { TQPixmap blankPixmap(mRootWidth, mRootHeight); - blankPixmap.fill(Qt::black); + blankPixmap.fill(TQt::black); slotPaintBackground(blankPixmap); printf("[WARNING] Unable to obtain desktop wallpaper in a timely manner. High system load or possibly a TDE bug!\n"); fflush(stdout); } @@ -2065,7 +2069,7 @@ void LockProcess::slotPaintBackground(const TQPixmap &rpm) } else { mEnsureScreenHiddenTimer = new TQTimer( this ); - connect( mEnsureScreenHiddenTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotForcePaintBackground()) ); + connect( mEnsureScreenHiddenTimer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotForcePaintBackground()) ); } // Only remove the mask widget once the resize is 100% complete! @@ -2127,7 +2131,7 @@ void LockProcess::doFunctionKeyBroadcast() { // This does NOT work with the SAK or system modal dialogs! if ((!trinity_desktop_lock_use_system_modal_dialogs) && (!trinity_desktop_lock_use_sak)) { mBusy=true; - TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed())); + TQTimer::singleShot(1000, this, TQ_SLOT(slotDeadTimePassed())); if (mkeyCode == XKeysymToKeycode(tqt_xdisplay(), XF86XK_Display)) { while (mDialogControlLock == true) { usleep(100000); @@ -2167,7 +2171,7 @@ bool LockProcess::x11Event(XEvent *event) (event->xkey.keycode == XKeysymToKeycode(event->xkey.display, XF86XK_AudioRaiseVolume)) || \ (event->xkey.keycode == XKeysymToKeycode(event->xkey.display, XF86XK_AudioLowerVolume))) { mkeyCode = event->xkey.keycode; - TQTimer::singleShot( 100, this, TQT_SLOT(doFunctionKeyBroadcast()) ); + TQTimer::singleShot( 100, this, TQ_SLOT(doFunctionKeyBroadcast()) ); return true; } // ACPI power keys @@ -2176,7 +2180,7 @@ bool LockProcess::x11Event(XEvent *event) (event->xkey.keycode == XKeysymToKeycode(event->xkey.display, XF86XK_Suspend)) || \ (event->xkey.keycode == XKeysymToKeycode(event->xkey.display, XF86XK_Hibernate))) { mkeyCode = event->xkey.keycode; - TQTimer::singleShot( 100, this, TQT_SLOT(doFunctionKeyBroadcast()) ); + TQTimer::singleShot( 100, this, TQ_SLOT(doFunctionKeyBroadcast()) ); return true; } } @@ -2192,7 +2196,7 @@ bool LockProcess::x11Event(XEvent *event) // fall through case KeyPress: if ((mHackDelayStartupTimer) && (mHackDelayStartupTimer->isActive())) { - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } if (mBusy || !mDialogs.isEmpty()) { break; @@ -2202,12 +2206,12 @@ bool LockProcess::x11Event(XEvent *event) if (mLocked) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY if (mHackStartupEnabled) { - mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } } - if ((!mLocked) && (!mInSecureDialog)) { + if (!mLocked && !mInSecureDialog) { stopSaver(); - kapp->quit(); + tdeApp->quit(); } if (mAutoLogout) { // we need to restart the auto logout countdown @@ -2219,7 +2223,7 @@ bool LockProcess::x11Event(XEvent *event) if (!mLocked || checkPass()) { mClosingWindows = true; stopSaver(); - kapp->quit(); + tdeApp->quit(); } else if (mAutoLogout) { // we need to restart the auto logout countdown @@ -2251,7 +2255,7 @@ bool LockProcess::x11Event(XEvent *event) else { if (trinity_desktop_lock_use_system_modal_dialogs == true) { ENABLE_CONTINUOUS_LOCKDLG_DISPLAY - if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE); + if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, true); } else { resume( false ); @@ -2308,7 +2312,7 @@ bool LockProcess::x11Event(XEvent *event) && event->xkey.window != mDialogs.first()->winId()) { XEvent ev2 = *event; ev2.xkey.window = ev2.xkey.subwindow = mDialogs.first()->winId(); - tqApp->x11ProcessEvent( &ev2 ); + tdeApp->x11ProcessEvent( &ev2 ); return true; } @@ -2442,14 +2446,14 @@ void LockProcess::msgBox( TQMessageBox::Icon type, const TQString &txt ) KPushButton *button = new KPushButton( KStdGuiItem::ok(), winFrame ); button->setDefault( true ); button->setSizePolicy( TQSizePolicy( TQSizePolicy::Preferred, TQSizePolicy::Preferred ) ); - connect( button, TQT_SIGNAL( clicked() ), &box, TQT_SLOT( accept() ) ); + connect( button, TQ_SIGNAL( clicked() ), &box, TQ_SLOT( accept() ) ); TQVBoxLayout *vbox = new TQVBoxLayout( &box ); vbox->addWidget( winFrame ); TQGridLayout *grid = new TQGridLayout( winFrame, 2, 2, 10 ); - grid->addWidget( label1, 0, 0, Qt::AlignCenter ); - grid->addWidget( label2, 0, 1, Qt::AlignCenter ); - grid->addMultiCellWidget( button, 1,1, 0,1, Qt::AlignCenter ); + grid->addWidget( label1, 0, 0, TQt::AlignCenter ); + grid->addWidget( label2, 0, 1, TQt::AlignCenter ); + grid->addMultiCellWidget( button, 1,1, 0,1, TQt::AlignCenter ); execDialog( &box ); } @@ -2464,7 +2468,7 @@ void LockProcess::showVkbd() mVkbdWindows.clear(); mVkbdLastEventWindow = None; mKWinModule = new KWinModule( NULL, KWinModule::INFO_WINDOWS ); - connect( mKWinModule, TQT_SIGNAL( windowAdded( WId )), TQT_SLOT( windowAdded( WId ))); + connect( mKWinModule, TQ_SIGNAL( windowAdded( WId )), TQ_SLOT( windowAdded( WId ))); mVkbdProcess = new TDEProcess; *mVkbdProcess << "xvkbd" << "-compact" << "-geometry" << "-0-0" << "-xdm"; mVkbdProcess->start(); @@ -2570,7 +2574,7 @@ bool LockProcess::forwardVkbdEvent( XEvent* event ) } // vkbd windows are kept topmost, so just find the first one in the position for( TQValueList< VkbdWindow >::ConstIterator it = mVkbdWindows.begin(); it != mVkbdWindows.end(); ++it ) { - if( TQT_TQRECT_OBJECT((*it).rect).contains( pos )) { + if( (*it).rect.contains( pos )) { // Find the subwindow where the event should actually go. // Not exactly cheap in the number of X roundtrips but oh well. Window window = (*it).id; @@ -2678,7 +2682,7 @@ void LockProcess::slotMouseActivity(XEvent *event) } // Clicked inside dialog; set focus - if (inFrame == TRUE) { + if (inFrame) { WId window = mDialogs.first()->winId(); XSetInputFocus(tqt_xdisplay(), window, RevertToParent, CurrentTime); fakeFocusIn(window); @@ -2688,20 +2692,20 @@ void LockProcess::slotMouseActivity(XEvent *event) } // Clicked inside window handle (or border); drag window - if ((inFrame == TRUE) && (inDialog == FALSE)) { + if (inFrame && !inDialog) { TQPoint oldPoint = mDialogs.first()->pos(); m_mouseDown = 1; m_dialogPrevX = oldPoint.x(); m_dialogPrevY = oldPoint.y(); m_mousePrevX = be->x_root; m_mousePrevY = be->y_root; - XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(tqsizeAllCursor).handle(), CurrentTime); + XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(TQt::sizeAllCursor).handle(), CurrentTime); } } // Drag the window... if (event->type == MotionNotify) { - if (m_mouseDown == TRUE) { + if (m_mouseDown) { int deltaX = me->x_root - m_mousePrevX; int deltaY = me->y_root - m_mousePrevY; m_dialogPrevX = m_dialogPrevX + deltaX; @@ -2715,7 +2719,7 @@ void LockProcess::slotMouseActivity(XEvent *event) if (event->type == ButtonRelease) { m_mouseDown = 0; - XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(tqarrowCursor).handle(), CurrentTime); + XChangeActivePointerGrab( tqt_xdisplay(), GRABEVENTS, TQCursor(TQt::arrowCursor).handle(), CurrentTime); } } @@ -2849,11 +2853,11 @@ void LockProcess::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) m_loginCardDevice = cdevice; if (dynamic_cast<SAKDlg*>(currentDialog)) { dynamic_cast<SAKDlg*>(currentDialog)->closeDialogForced(); - TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardLogin())); + TQTimer::singleShot(0, this, TQ_SLOT(signalPassDlgToAttemptCardLogin())); } else if (dynamic_cast<SecureDlg*>(currentDialog)) { dynamic_cast<SecureDlg*>(currentDialog)->closeDialogForced(); - TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardLogin())); + TQTimer::singleShot(0, this, TQ_SLOT(signalPassDlgToAttemptCardLogin())); } else if (dynamic_cast<PasswordDlg*>(currentDialog)) { signalPassDlgToAttemptCardLogin(); @@ -2871,7 +2875,7 @@ void LockProcess::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) } else { m_loginCardDevice = NULL; - TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardAbort())); + TQTimer::singleShot(0, this, TQ_SLOT(signalPassDlgToAttemptCardAbort())); } #endif } @@ -2886,7 +2890,7 @@ void LockProcess::signalPassDlgToAttemptCardLogin() else { if (currentDialog && m_loginCardDevice) { // Try again later - TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardLogin())); + TQTimer::singleShot(0, this, TQ_SLOT(signalPassDlgToAttemptCardLogin())); } } #endif @@ -2902,7 +2906,7 @@ void LockProcess::signalPassDlgToAttemptCardAbort() else { if (currentDialog) { // Try again later - TQTimer::singleShot(0, this, SLOT(signalPassDlgToAttemptCardAbort())); + TQTimer::singleShot(0, this, TQ_SLOT(signalPassDlgToAttemptCardAbort())); } } #endif @@ -2963,7 +2967,7 @@ void LockProcess::saverReady() { // Control pipe handler // ControlPipeHandlerObject::ControlPipeHandlerObject() : TQObject() { - mParent = NULL; + mParent = nullptr; mRunning = false; mTerminate = false; mThreadID = 0L; @@ -2987,7 +2991,7 @@ void ControlPipeHandlerObject::run(void) { int display_number = atoi(TQString(XDisplayString(tqt_xdisplay())).replace(":","").ascii()); if (display_number < 0) { - printf("[kdesktop_lock] Warning: unable to create control socket. Interactive logon modules may not function properly.\n"); + printf("[kdesktop_lock] Warning: unable to create control socket. Interactive logon modules may not function properly.\n"); mRunning = false; TQApplication::eventLoop()->exit(-1); return; @@ -3018,7 +3022,7 @@ void ControlPipeHandlerObject::run(void) { } if (!mParent->mPipeOpen) { - printf("[kdesktop_lock] Warning: unable to create control socket '%s'. Interactive logon modules may not function properly.\n", fifo_file); + printf("[kdesktop_lock] Warning: unable to create control socket '%s'. Interactive logon modules may not function properly.\n", fifo_file); mRunning = false; TQApplication::eventLoop()->exit(-1); return; diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h index 51cef069f..1afc9bb46 100644 --- a/kdesktop/lock/lockprocess.h +++ b/kdesktop/lock/lockprocess.h @@ -11,7 +11,7 @@ #define __LOCKENG_H__ #include <kgreeterplugin.h> -#include <kprocess.h> +#include <tdeprocess.h> #include <kpixmap.h> #include <krootpixmap.h> @@ -52,7 +52,7 @@ typedef TQValueList<Window> TQXLibWindowList; // class ControlPipeHandlerObject : public TQObject { - Q_OBJECT + TQ_OBJECT public: ControlPipeHandlerObject(); @@ -81,7 +81,7 @@ class ControlPipeHandlerObject : public TQObject // class LockProcess : public TQWidget { - Q_OBJECT + TQ_OBJECT public: LockProcess(); @@ -106,9 +106,6 @@ class LockProcess : public TQWidget TDECryptographicCardDevice* cryptographicCardDevice(); - signals: - void terminateHelperThread(); - public slots: void quitSaver(); void preparePopup(); diff --git a/kdesktop/lock/main.cpp b/kdesktop/lock/main.cpp index f1407070c..9f707c35d 100644 --- a/kdesktop/lock/main.cpp +++ b/kdesktop/lock/main.cpp @@ -33,14 +33,14 @@ #include <kdebug.h> #include <tdeglobalsettings.h> #include <dcopref.h> -#include <ksimpleconfig.h> -#include <kstandarddirs.h> +#include <tdesimpleconfig.h> +#include <tdestandarddirs.h> #include <tdmtsak.h> #include <stdlib.h> -#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 +#if defined(TQ_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 #define COMPOSITE #endif @@ -58,49 +58,49 @@ TQXLibWindowList trinity_desktop_lock_hidden_window_list; // [FIXME] Add GUI configuration checkboxes for these three settings (see kdesktoprc [ScreenSaver] UseUnmanagedLockWindows, DelaySaverStart, and UseTDESAK) -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; - -LockProcess* trinity_desktop_lock_process = NULL; +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; +// This is a temporary variable used till a fix for the grab issue is prepared +bool trinity_desktop_lock_failed_grab = false; bool signalled_forcelock; bool signalled_dontlock; bool signalled_securedialog; bool signalled_blank; bool signalled_run; -bool in_internal_mode = FALSE; +bool in_internal_mode = false; -bool argb_visual = FALSE; +bool argb_visual = false; pid_t kdesktop_pid = -1; -bool trinity_desktop_lock_settings_initialized = FALSE; +bool trinity_desktop_lock_settings_initialized = false; static void sigusr1_handler(int) { - signalled_forcelock = TRUE; + signalled_forcelock = true; } static void sigusr2_handler(int) { - signalled_dontlock = TRUE; + signalled_dontlock = true; } -static void sigusr3_handler(int) +static void sigwinch_handler(int) { - signalled_securedialog = TRUE; + signalled_securedialog = true; } -static void sigusr4_handler(int) +static void sigttin_handler(int) { - signalled_blank = TRUE; + signalled_blank = true; } -static void sigusr5_handler(int) +static void sigttou_handler(int) { - signalled_run = TRUE; + signalled_run = true; } static int trapXErrors(Display *, XErrorEvent *) @@ -236,9 +236,9 @@ int main( int argc, char **argv ) XSetErrorHandler(trapXErrors); - MyApp* app = NULL; + MyApp *app = nullptr; - while (1 == 1) { + while (true) { sigset_t new_mask; sigset_t orig_mask; @@ -246,11 +246,11 @@ int main( int argc, char **argv ) sigfillset(&new_mask); sigprocmask(SIG_BLOCK, &new_mask, NULL); - signalled_forcelock = FALSE; - signalled_dontlock = FALSE; - signalled_securedialog = FALSE; - signalled_blank = FALSE; - signalled_run = FALSE; + signalled_forcelock = false; + signalled_dontlock = false; + signalled_securedialog = false; + signalled_blank = false; + signalled_run = false; int kdesktop_screen_number = 0; int starting_screen = 0; @@ -261,7 +261,7 @@ int main( int argc, char **argv ) if (TDEGlobalSettings::isMultiHead()) { Display *dpy = XOpenDisplay(NULL); - if (! dpy) { + if (!dpy) { fprintf(stderr, "%s: FATAL ERROR: couldn't open display '%s'\n", argv[0], XDisplayName(NULL)); @@ -303,14 +303,11 @@ int main( int argc, char **argv ) } } - env.sprintf("DISPLAY=%s.%d", display_name.data(), - kdesktop_screen_number); + env.sprintf("DISPLAY=%s.%d", display_name.data(), kdesktop_screen_number); kdDebug() << "env " << env << endl; if (putenv(strdup(env.data()))) { - fprintf(stderr, - "%s: WARNING: unable to set DISPLAY environment variable\n", - argv[0]); + fprintf(stderr, "%s: WARNING: unable to set DISPLAY environment variable\n", argv[0]); perror("putenv()"); } } @@ -374,17 +371,17 @@ int main( int argc, char **argv ) TDEGlobal::locale()->insertCatalogue("libdmctl"); struct stat st; - KSimpleConfig* tdmconfig; + TDESimpleConfig* tdmconfig; if( stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st ) == 0) { - tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" )); + tdmconfig = new TDESimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" )); } else { - tdmconfig = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" )); + tdmconfig = new TDESimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" )); } tdmconfig->setGroup("X-:*-Greeter"); // Create new LockProcess, which also spawns threads inheriting the blocked signal mask - trinity_desktop_lock_process = new LockProcess; + LockProcess lock_process; // Unblock reception of all signals in this thread sigprocmask(SIG_UNBLOCK, &new_mask, NULL); @@ -396,7 +393,7 @@ int main( int argc, char **argv ) kdesktop_pid = atoi(args->getOption( "internal" )); struct sigaction act; - in_internal_mode = TRUE; + in_internal_mode = true; // handle SIGUSR1 act.sa_handler= sigusr1_handler; @@ -410,20 +407,20 @@ int main( int argc, char **argv ) sigaddset(&(act.sa_mask), SIGUSR2); act.sa_flags = 0; sigaction(SIGUSR2, &act, 0L); - // handle SIGWINCH (an ersatz SIGUSR3) - act.sa_handler= sigusr3_handler; + // handle SIGWINCH (as custom user signal rather than its inherent meaning) + act.sa_handler= sigwinch_handler; sigemptyset(&(act.sa_mask)); sigaddset(&(act.sa_mask), SIGWINCH); act.sa_flags = 0; sigaction(SIGWINCH, &act, 0L); - // handle SIGTTIN (an ersatz SIGUSR4) - act.sa_handler= sigusr4_handler; + // handle SIGTTIN (as custom user signal rather than its inherent meaning) + act.sa_handler= sigttin_handler; sigemptyset(&(act.sa_mask)); sigaddset(&(act.sa_mask), SIGTTIN); act.sa_flags = 0; sigaction(SIGTTIN, &act, 0L); - // handle SIGTTOU (an ersatz SIGUSR5) - act.sa_handler= sigusr5_handler; + // handle SIGTTOU (as custom user signal rather than its inherent meaning) + act.sa_handler= sigttou_handler; sigemptyset(&(act.sa_mask)); sigaddset(&(act.sa_mask), SIGTTOU); act.sa_flags = 0; @@ -437,7 +434,7 @@ int main( int argc, char **argv ) sigaddset(&new_mask,SIGTTIN); sigaddset(&new_mask,SIGTTOU); - while (signalled_run == FALSE) { + while (!signalled_run) { // let kdesktop know the saver process is ready if (kill(kdesktop_pid, SIGTTIN) < 0) { // The controlling kdesktop process probably died. Commit suicide... @@ -454,7 +451,7 @@ int main( int argc, char **argv ) // wait for SIGUSR1, SIGUSR2, SIGWINCH, SIGTTIN, or SIGTTOU sigprocmask(SIG_BLOCK, &new_mask, &orig_mask); - if (signalled_run != TRUE) { + if (!signalled_run) { sigsuspend(&orig_mask); } sigprocmask(SIG_UNBLOCK, &new_mask, NULL); @@ -494,42 +491,54 @@ int main( int argc, char **argv ) delete tdmconfig; - if (args->isSet( "forcelock" ) || (signalled_forcelock == TRUE)) { - trinity_desktop_lock_forced = TRUE; + if (args->isSet( "forcelock" ) || signalled_forcelock) { + trinity_desktop_lock_forced = true; } - trinity_desktop_lock_process->init(child, (args->isSet( "blank" ) || (signalled_blank == TRUE))); + lock_process.init(child, (args->isSet( "blank" ) || signalled_blank)); if (!child) { - trinity_desktop_lock_process->setChildren(child_sockets); + lock_process.setChildren(child_sockets); } else { - trinity_desktop_lock_process->setParent(parent_connection); + lock_process.setParent(parent_connection); } + trinity_desktop_lock_failed_grab = false; bool rt; - if( (((!child) && (args->isSet( "forcelock" ))) || (signalled_forcelock == TRUE))) { - rt = trinity_desktop_lock_process->lock(); + if( (!child && args->isSet( "forcelock" )) || signalled_forcelock) { + rt = lock_process.lock(); } - else if( child || (args->isSet( "dontlock" ) || (signalled_dontlock == TRUE))) { - rt = trinity_desktop_lock_process->dontLock(); + else if( child || (args->isSet( "dontlock" ) || signalled_dontlock)) { + rt = lock_process.dontLock(); } - else if( child || (args->isSet( "securedialog" ) || (signalled_securedialog == TRUE))) { + else if( child || (args->isSet( "securedialog" ) || signalled_securedialog)) { int retcode = tde_sak_verify_calling_process(); if (retcode == 0) { - rt = trinity_desktop_lock_process->runSecureDialog(); + rt = lock_process.runSecureDialog(); } else { return 1; } } else { - rt = trinity_desktop_lock_process->defaultSave(); + rt = lock_process.defaultSave(); } + + // Make sure to handle all pending responses from the X server. + // If we don't do this, in case of failed activation of the saver/lock screen, + // we will end up in a dirty state and the screen lock will no longer hide the windows + // on the screen due to 'm_rootPixmap' failing to load the background image. + // This is caused by a 'XConvertSelection' request in 'TDESharedPixmap::loadFromShared' + // not being handled and causing the corresponding property to become unusuable in X for + // subsequent lock requests. + XSync(tqt_xdisplay(), False); + app->processEvents(); + if (!rt) { - return 0; + return (trinity_desktop_lock_failed_grab ? 0 : 12); } - if (in_internal_mode == FALSE) { + if (!in_internal_mode) { trinity_desktop_lock_hidden_window_list.clear(); int ret = app->exec(); restore_hidden_override_redirect_windows(); @@ -548,9 +557,6 @@ int main( int argc, char **argv ) return 12; } - delete trinity_desktop_lock_process; - trinity_desktop_lock_process = NULL; - // FIXME // We should not have to return (restart) at all, // but it seems that some X11 connections are left active, diff --git a/kdesktop/lock/main.h b/kdesktop/lock/main.h index fd19c6183..162542555 100644 --- a/kdesktop/lock/main.h +++ b/kdesktop/lock/main.h @@ -25,10 +25,10 @@ #include <time.h> class MyApp : public TDEApplication { - Q_OBJECT + TQ_OBJECT public: MyApp() : TDEApplication(), lastTick( 0 ) {} - MyApp(Display *display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0, bool allowStyles=true) : TDEApplication(display, visual, colormap, allowStyles), lastTick( 0 ) {} + MyApp(Display *display, TQt::HANDLE visual = 0, TQt::HANDLE colormap = 0, bool allowStyles=true) : TDEApplication(display, visual, colormap, allowStyles), lastTick( 0 ) {} protected: bool x11EventFilter( XEvent * ); diff --git a/kdesktop/lock/querydlg.cpp b/kdesktop/lock/querydlg.cpp index 1fc5d260c..5b1fea0f3 100644 --- a/kdesktop/lock/querydlg.cpp +++ b/kdesktop/lock/querydlg.cpp @@ -14,7 +14,7 @@ #include <tdelocale.h> #include <kpushbutton.h> #include <kseparator.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeglobalsettings.h> #include <tdeconfig.h> #include <kiconloader.h> @@ -111,13 +111,13 @@ QueryDlg::QueryDlg(LockProcess *parent) layButtons->addWidget( ok ); frameLayout = new TQGridLayout( frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint() ); - frameLayout->addMultiCellWidget( mpixLabel, 0, 2, 0, 0, Qt::AlignTop ); + frameLayout->addMultiCellWidget( mpixLabel, 0, 2, 0, 0, TQt::AlignTop ); frameLayout->addLayout( layStatus, 0, 1 ); frameLayout->addLayout( layPin, 2, 1 ); frameLayout->addMultiCellWidget( sep, 3, 3, 0, 1 ); frameLayout->addMultiCellLayout( layButtons, 4, 4, 0, 1 ); - connect(ok, TQT_SIGNAL(clicked()), TQT_SLOT(slotOK())); + connect(ok, TQ_SIGNAL(clicked()), TQ_SLOT(slotOK())); installEventFilter(this); setFixedSize( sizeHint() ); @@ -140,7 +140,7 @@ TQString QueryDlg::getEntry() void QueryDlg::updateLabel(TQString &txt) { - mStatusLabel->setPaletteForegroundColor(Qt::black); + mStatusLabel->setPaletteForegroundColor(TQt::black); mStatusLabel->setText("<b>" + txt + "</b>"); } diff --git a/kdesktop/lock/querydlg.h b/kdesktop/lock/querydlg.h index d5c4f7f33..0b3e55aa8 100644 --- a/kdesktop/lock/querydlg.h +++ b/kdesktop/lock/querydlg.h @@ -28,7 +28,7 @@ class TQListView; // class QueryDlg : public TQDialog { - Q_OBJECT + TQ_OBJECT public: QueryDlg(LockProcess *parent); diff --git a/kdesktop/lock/sakdlg.cpp b/kdesktop/lock/sakdlg.cpp index 803c77919..5b23a9c5a 100644 --- a/kdesktop/lock/sakdlg.cpp +++ b/kdesktop/lock/sakdlg.cpp @@ -14,7 +14,7 @@ #include <tdelocale.h> #include <kpushbutton.h> #include <kseparator.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeglobalsettings.h> #include <tdeconfig.h> #include <kiconloader.h> @@ -108,7 +108,7 @@ SAKDlg::SAKDlg(LockProcess *parent) mSAKProcess = new TDEProcess; *mSAKProcess << "tdmtsak"; - connect(mSAKProcess, TQT_SIGNAL(processExited(TDEProcess*)), this, TQT_SLOT(slotSAKProcessExited())); + connect(mSAKProcess, TQ_SIGNAL(processExited(TDEProcess*)), this, TQ_SLOT(slotSAKProcessExited())); mSAKProcess->start(); } @@ -142,7 +142,7 @@ void SAKDlg::reject() void SAKDlg::updateLabel(TQString &txt) { - mStatusLabel->setPaletteForegroundColor(Qt::black); + mStatusLabel->setPaletteForegroundColor(TQt::black); mStatusLabel->setText("<b>" + txt + "</b>"); } diff --git a/kdesktop/lock/sakdlg.h b/kdesktop/lock/sakdlg.h index faded4b6e..12d80b8cb 100644 --- a/kdesktop/lock/sakdlg.h +++ b/kdesktop/lock/sakdlg.h @@ -26,7 +26,7 @@ class TQListView; // class SAKDlg : public TQDialog { - Q_OBJECT + TQ_OBJECT public: SAKDlg(LockProcess *parent); diff --git a/kdesktop/lock/securedlg.cpp b/kdesktop/lock/securedlg.cpp index fca79a707..ba2b08af0 100644 --- a/kdesktop/lock/securedlg.cpp +++ b/kdesktop/lock/securedlg.cpp @@ -14,7 +14,7 @@ #include <tdelocale.h> #include <kpushbutton.h> #include <kseparator.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeglobalsettings.h> #include <tdeconfig.h> #include <kiconloader.h> @@ -137,11 +137,11 @@ SecureDlg::SecureDlg(LockProcess *parent) frameLayout->addMultiCellWidget( sep, 2, 2, 0, 1 ); frameLayout->addMultiCellLayout( layPBGrid, 3, 3, 0, 1, AlignLeft | AlignVCenter); - connect(mCancelButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotBtnCancel())); - connect(mLockButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotBtnLock())); - connect(mTaskButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotBtnTask())); - connect(mShutdownButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotBtnShutdown())); - connect(mSwitchButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotBtnSwitchUser())); + connect(mCancelButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotBtnCancel())); + connect(mLockButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotBtnLock())); + connect(mTaskButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotBtnTask())); + connect(mShutdownButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotBtnShutdown())); + connect(mSwitchButton, TQ_SIGNAL(clicked()), this, TQ_SLOT(slotBtnSwitchUser())); TQSize dlgSz = sizeHint(); int btnSize = dlgSz.width(); diff --git a/kdesktop/lock/securedlg.h b/kdesktop/lock/securedlg.h index 9ad0ac1da..c6c9fa7fe 100644 --- a/kdesktop/lock/securedlg.h +++ b/kdesktop/lock/securedlg.h @@ -27,7 +27,7 @@ class TQListView; // class SecureDlg : public TQDialog { - Q_OBJECT + TQ_OBJECT public: SecureDlg(LockProcess *parent); diff --git a/kdesktop/lockeng.cpp b/kdesktop/lockeng.cpp index 5e32fd0f6..fc3c9db6e 100644 --- a/kdesktop/lockeng.cpp +++ b/kdesktop/lockeng.cpp @@ -6,7 +6,6 @@ // Copyright (c) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net> // - #include <config.h> #include <stdlib.h> @@ -20,10 +19,10 @@ #include <tdecryptographiccarddevice.h> #endif -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeapplication.h> #include <kservicegroup.h> -#include <ksimpleconfig.h> +#include <tdesimpleconfig.h> #include <kdebug.h> #include <tdelocale.h> #include <tqfile.h> @@ -45,52 +44,49 @@ #include "lockeng.moc" #include "kdesktopsettings.h" -#define SYSTEMD_LOGIN1_SERVICE "org.freedesktop.login1" -#define SYSTEMD_LOGIN1_PATH "/org/freedesktop/login1" -#define SYSTEMD_LOGIN1_MANAGER_IFACE "org.freedesktop.login1.Manager" -#define SYSTEMD_LOGIN1_SESSION_IFACE "org.freedesktop.login1.Session" -#define SYSTEMD_LOGIN1_SEAT_IFACE "org.freedesktop.login1.Seat" +#include "xautolock_c.h" + +#define SYSTEMD_LOGIN1_SERVICE "org.freedesktop.login1" +#define SYSTEMD_LOGIN1_MANAGER_IFACE "org.freedesktop.login1.Manager" +#define SYSTEMD_LOGIN1_SESSION_IFACE "org.freedesktop.login1.Session" +#define SYSTEMD_LOGIN1_SEAT_IFACE "org.freedesktop.login1.Seat" +#define SYSTEMD_LOGIN1_PATH "/org/freedesktop/login1" #define DBUS_CONN_NAME "kdesktop_lock" -#include "xautolock_c.h" extern xautolock_corner_t xautolock_corners[ 4 ]; +bool trinity_lockeng_sak_available = true; -bool trinity_lockeng_sak_available = TRUE; +SaverEngineEventHandler *gbl_saverEngineEventHandler = nullptr; -SaverEngine* m_masterSaverEngine = NULL; static void sigusr1_handler(int) { - if (m_masterSaverEngine) { - m_masterSaverEngine->m_threadHelperObject->slotLockProcessWaiting(); + if (gbl_saverEngineEventHandler) + { + gbl_saverEngineEventHandler->lockCompleted(); } } + static void sigusr2_handler(int) { - if (m_masterSaverEngine) { - m_masterSaverEngine->m_threadHelperObject->slotLockProcessFullyActivated(); + if (gbl_saverEngineEventHandler) + { + gbl_saverEngineEventHandler->lockFullyActivated(); } } + static void sigttin_handler(int) { - if (m_masterSaverEngine) { - m_masterSaverEngine->slotLockProcessReady(); + if (gbl_saverEngineEventHandler) + { + gbl_saverEngineEventHandler->lockReady(); } } -//=========================================================================== -// -// Screen saver engine. Doesn't handle the actual screensaver window, -// starting screensaver hacks, or password entry. That's done by -// a newly started process. -// SaverEngine::SaverEngine() - : TQWidget(), + : TQObject(), KScreensaverIface(), mBlankOnly(false), - mSAKProcess(NULL), - mTerminationRequested(false), - mSaverProcessReady(false), mNewVTAfterLockEngage(false), mValidCryptoCardInserted(false), mSwitchVTAfterLockEngage(-1), @@ -99,7 +95,6 @@ SaverEngine::SaverEngine() systemdSession(0) { // handle SIGUSR1 - m_masterSaverEngine = this; mSignalAction.sa_handler= sigusr1_handler; sigemptyset(&(mSignalAction.sa_mask)); sigaddset(&(mSignalAction.sa_mask), SIGUSR1); @@ -107,15 +102,13 @@ SaverEngine::SaverEngine() sigaction(SIGUSR1, &mSignalAction, 0L); // handle SIGUSR2 - m_masterSaverEngine = this; mSignalAction.sa_handler= sigusr2_handler; sigemptyset(&(mSignalAction.sa_mask)); sigaddset(&(mSignalAction.sa_mask), SIGUSR2); mSignalAction.sa_flags = 0; sigaction(SIGUSR2, &mSignalAction, 0L); - // handle SIGTTIN - m_masterSaverEngine = this; + // handle SIGTTIN (as custom user signal rather than its inherent meaning) mSignalAction.sa_handler= sigttin_handler; sigemptyset(&(mSignalAction.sa_mask)); sigaddset(&(mSignalAction.sa_mask), SIGTTIN); @@ -123,92 +116,52 @@ SaverEngine::SaverEngine() sigaction(SIGTTIN, &mSignalAction, 0L); // Save X screensaver parameters - XGetScreenSaver(tqt_xdisplay(), &mXTimeout, &mXInterval, - &mXBlanking, &mXExposures); - - mState = Waiting; - mXAutoLock = 0; + XGetScreenSaver(tqt_xdisplay(), &mXTimeout, &mXInterval, &mXBlanking, &mXExposures); + + // Create event handler thread, event loop and object + m_eventHandlerThread = new TQEventLoopThread; + m_eventHandlerThread->start(); + m_saverEngineEventHandler = new SaverEngineEventHandler(this); + gbl_saverEngineEventHandler = m_saverEngineEventHandler; + m_saverEngineEventHandler->moveToThread(m_eventHandlerThread); + connect(this, TQ_SIGNAL(terminateEventHandlerThread()), m_saverEngineEventHandler, TQ_SLOT(terminateThread())); + connect(this, TQ_SIGNAL(lockScreenSignal(bool)), m_saverEngineEventHandler, TQ_SLOT(lockScreen(bool))); + connect(this, TQ_SIGNAL(activateSaverOrLockSignal(LockType)), + m_saverEngineEventHandler, TQ_SLOT(activateSaverOrLock(LockType))); + + mXAutoLock = nullptr; mEnabled = false; - m_helperThread = new TQEventLoopThread; - m_helperThread->start(); - m_threadHelperObject = new SaverEngineThreadHelperObject; - m_threadHelperObject->moveToThread(m_helperThread); - connect(this, TQT_SIGNAL(terminateHelperThread()), m_threadHelperObject, TQT_SLOT(terminateThread())); - connect(m_threadHelperObject, TQT_SIGNAL(lockProcessWaiting()), this, TQT_SLOT(lockProcessWaiting())); - connect(m_threadHelperObject, TQT_SIGNAL(lockProcessFullyActivated()), this, TQT_SLOT(lockProcessFullyActivated())); - - connect(&mLockProcess, TQT_SIGNAL(processExited(TDEProcess *)), - TQT_SLOT(lockProcessExited())); - configure(); - // Create SAK process only if SAK is enabled - KSimpleConfig *config; - struct stat st; - if (stat( KDE_CONFDIR "/tdm/tdmdistrc" , &st) == 0) { - config = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmdistrc" )); - } - else { - config = new KSimpleConfig( TQString::fromLatin1( KDE_CONFDIR "/tdm/tdmrc" )); - } - config->setGroup("X-:*-Greeter"); - bool useSAKProcess = false; -#ifdef BUILD_TSAK - useSAKProcess = config->readBoolEntry("UseSAK", false) && KDesktopSettings::useTDESAK(); -#endif - if (useSAKProcess) { - mSAKProcess = new TDEProcess; - *mSAKProcess << "tdmtsak"; - connect(mSAKProcess, TQT_SIGNAL(processExited(TDEProcess*)), this, TQT_SLOT(slotSAKProcessExited())); - TQTimer::singleShot( 0, this, TQT_SLOT(handleSecureDialog()) ); - } - - mLockProcess.clearArguments(); - TQString path = TDEStandardDirs::findExe( "kdesktop_lock" ); - if( path.isEmpty()) - { - kdDebug( 1204 ) << "Can't find kdesktop_lock!" << endl; - } - mLockProcess << path; - mLockProcess << TQString( "--internal" ) << TQString( "%1" ).arg(getpid()); - if (mLockProcess.start() == false ) - { - kdDebug( 1204 ) << "Failed to start kdesktop_lock!" << endl; - } - - // Prevent kdesktop_lock signals from being handled by the wrong (GUI) thread - sigemptyset(&mThreadBlockSet); - sigaddset(&mThreadBlockSet, SIGUSR1); - sigaddset(&mThreadBlockSet, SIGUSR2); - sigaddset(&mThreadBlockSet, SIGTTIN); - pthread_sigmask(SIG_BLOCK, &mThreadBlockSet, NULL); - - // Wait for the saver process to signal ready... - if (!waitForLockProcessStart()) { - kdDebug( 1204 ) << "Failed to initialize kdesktop_lock (unexpected termination)!" << endl; - } - - // lock the desktop if required - config->setGroup("X-:0-Core"); - bool autoLoginEnable = config->readBoolEntry("AutoLoginEnable", false); - bool autoLoginLocked = config->readBoolEntry("AutoLoginLocked", false); - if (autoLoginEnable && autoLoginLocked) { - mLockProcess.kill(SIGTTOU); - mLockProcess.kill(SIGUSR1); - } - delete config; - config = NULL; + // Prevent kdesktop_lock signals from being handled by the main GUI thread. + // Those signals will be handled by m_eventHandlerThread instead + // + // Make sure to keep this code after the constructor of `m_eventHandlerThread`, so that + // the new thread starts with the signals unblocked. + sigset_t sigBlockMask; + sigemptyset(&sigBlockMask); + sigaddset(&sigBlockMask, SIGUSR1); + sigaddset(&sigBlockMask, SIGUSR2); + sigaddset(&sigBlockMask, SIGTTIN); + sigaddset(&sigBlockMask, SIGCHLD); + pthread_sigmask(SIG_BLOCK, &sigBlockMask, NULL); + + // Start SAK and lock processes + TQTimer::singleShot(0, m_saverEngineEventHandler, TQ_SLOT(restartLockProcess())); #ifdef WITH_TDEHWLIB // Initialize SmartCard readers TDEGenericDevice *hwdevice; TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); TDEGenericHardwareList cardReaderList = hwdevices->listByDeviceClass(TDEGenericDeviceType::CryptographicCard); - for (hwdevice = cardReaderList.first(); hwdevice; hwdevice = cardReaderList.next()) { - TDECryptographicCardDevice* cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice); - connect(cdevice, TQT_SIGNAL(certificateListAvailable(TDECryptographicCardDevice*)), this, TQT_SLOT(cryptographicCardInserted(TDECryptographicCardDevice*))); - connect(cdevice, TQT_SIGNAL(cardRemoved(TDECryptographicCardDevice*)), this, TQT_SLOT(cryptographicCardRemoved(TDECryptographicCardDevice*))); + for (hwdevice = cardReaderList.first(); hwdevice; hwdevice = cardReaderList.next()) + { + TDECryptographicCardDevice *cdevice = static_cast<TDECryptographicCardDevice*>(hwdevice); + connect(cdevice, TQ_SIGNAL(certificateListAvailable(TDECryptographicCardDevice*)), + this, TQ_SLOT(cryptographicCardInserted(TDECryptographicCardDevice*))); + connect(cdevice, TQ_SIGNAL(cardRemoved(TDECryptographicCardDevice*)), + this, TQ_SLOT(cryptographicCardRemoved(TDECryptographicCardDevice*))); cdevice->enableCardMonitoring(true); } @@ -216,11 +169,13 @@ SaverEngine::SaverEngine() KUser userinfo; TQString fileName = userinfo.homeDir() + "/.tde_card_login_state"; TQFile flagFile(fileName); - if (flagFile.open(IO_ReadOnly)) { + if (flagFile.open(IO_ReadOnly)) + { TQTextStream stream(&flagFile); - if (stream.readLine().startsWith("1")) { + if (stream.readLine().startsWith("1")) + { // Card was likely used to log in - TQTimer::singleShot(5000, this, SLOT(cardStartupTimeout())); + TQTimer::singleShot(5000, this, TQ_SLOT(cardStartupTimeout())); } flagFile.close(); } @@ -229,70 +184,66 @@ SaverEngine::SaverEngine() dBusConnect(); } -//--------------------------------------------------------------------------- -// -// Destructor - usual cleanups. -// SaverEngine::~SaverEngine() { - if (mState == Waiting) { - kill(mLockProcess.pid(), SIGKILL); - } - - mLockProcess.detach(); // don't kill it if we crash + m_saverEngineEventHandler->terminateLockProcess(); delete mXAutoLock; - dBusClose(); // Restore X screensaver parameters - XSetScreenSaver(tqt_xdisplay(), mXTimeout, mXInterval, mXBlanking, - mXExposures); - - terminateHelperThread(); - m_helperThread->wait(); - delete m_threadHelperObject; - delete m_helperThread; + XSetScreenSaver(tqt_xdisplay(), mXTimeout, mXInterval, mXBlanking, mXExposures); + emit terminateEventHandlerThread(); + m_eventHandlerThread->wait(); + delete m_saverEngineEventHandler; + delete m_eventHandlerThread; } -void SaverEngine::cardStartupTimeout() { - if (!mValidCryptoCardInserted) { - // Restore saver timeout - configure(); - - // Force lock - lockScreen(); +void SaverEngine::cardStartupTimeout() +{ + if (!mValidCryptoCardInserted) + { + configure(); // Restore saver timeout + lockScreen(); // Force lock } } -void SaverEngine::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) { +void SaverEngine::cryptographicCardInserted(TDECryptographicCardDevice* cdevice) +{ #ifdef WITH_TDEHWLIB TQString login_name = TQString::null; X509CertificatePtrList certList = cdevice->cardX509Certificates(); - if (certList.count() > 0) { + if (certList.count() > 0) + { KSSLCertificate* card_cert = NULL; card_cert = KSSLCertificate::fromX509(certList[0]); TQStringList cert_subject_parts = TQStringList::split("/", card_cert->getSubject(), false); - for (TQStringList::Iterator it = cert_subject_parts.begin(); it != cert_subject_parts.end(); ++it ) { + for (TQStringList::Iterator it = cert_subject_parts.begin(); it != cert_subject_parts.end(); ++it) + { TQString lcpart = (*it).lower(); - if (lcpart.startsWith("cn=")) { + if (lcpart.startsWith("cn=")) + { login_name = lcpart.right(lcpart.length() - strlen("cn=")); } } delete card_cert; } - if (login_name != "") { + if (login_name != "") + { KUser user; - if (login_name == user.loginName()) { + if (login_name == user.loginName()) + { mValidCryptoCardInserted = true; } } #endif } -void SaverEngine::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) { +void SaverEngine::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) +{ #ifdef WITH_TDEHWLIB - if (mValidCryptoCardInserted) { + if (mValidCryptoCardInserted) + { mValidCryptoCardInserted = false; // Restore saver timeout @@ -304,226 +255,166 @@ void SaverEngine::cryptographicCardRemoved(TDECryptographicCardDevice* cdevice) #endif } -//--------------------------------------------------------------------------- -// -// This should be called only using DCOP. -// +// DCOP interface method void SaverEngine::lock() { lockScreen(true); } -//--------------------------------------------------------------------------- -// -// Lock the screen -// -void SaverEngine::lockScreen(bool DCOP) +void SaverEngine::lockScreen(bool dcop) { - if (mValidCryptoCardInserted) { + if (mValidCryptoCardInserted) + { + kdDebug(1204) << "SaverEngine: crypto card inserted, ignore lock request" << endl; return; } + emit lockScreenSignal(dcop); +} - bool ok = true; - if (mState == Waiting) - { - ok = startLockProcess( ForceLock ); - // It takes a while for kdesktop_lock to start and lock the screen. - // Therefore delay the DCOP call until it tells kdesktop that the locking is in effect. - // This is done only for --forcelock . - if( ok && mState != Saving ) - { - if (DCOP) { - DCOPClientTransaction* trans = kapp->dcopClient()->beginTransaction(); - if (trans) { - mLockTransactions.append( trans ); - } - } - } - } - else +void SaverEngine::lockScreenGUI() +{ + DCOPClientTransaction *trans = tdeApp->dcopClient()->beginTransaction(); + if (trans) { - mLockProcess.kill( SIGHUP ); + mLockTransactions.append(trans); } } void SaverEngine::processLockTransactions() { - for( TQValueVector< DCOPClientTransaction* >::ConstIterator it = mLockTransactions.begin(); - it != mLockTransactions.end(); - ++it ) + TQValueVector<DCOPClientTransaction*>::ConstIterator it = mLockTransactions.begin(); + for (; it != mLockTransactions.end(); ++it) { TQCString replyType = "void"; TQByteArray arr; - kapp->dcopClient()->endTransaction( *it, replyType, arr ); + tdeApp->dcopClient()->endTransaction(*it, replyType, arr); } mLockTransactions.clear(); } void SaverEngine::saverLockReady() { - if( mState != Engaging ) + if (m_saverEngineEventHandler->getState() != SaverState::Engaging) { - kdDebug( 1204 ) << "Got unexpected saverReady()" << endl; + kdDebug(1204) << "Got unexpected saverLockReady()" << endl; } - kdDebug( 1204 ) << "Saver Lock Ready" << endl; + + kdDebug(1204) << "Saver Lock Ready" << endl; processLockTransactions(); } -//--------------------------------------------------------------------------- +// DCOP interface method void SaverEngine::save() { - if (!mValidCryptoCardInserted) { - if (mState == Waiting) { - startLockProcess( DefaultLock ); - } + if (mValidCryptoCardInserted) + { + kdDebug(1204) << "SaverEngine: crypto card inserted, ignore save request" << endl; + return; } + TQTimer::singleShot(0, m_saverEngineEventHandler, TQ_SLOT(saveScreen())); } -//--------------------------------------------------------------------------- +// DCOP interface method void SaverEngine::quit() { - if (mState == Saving || mState == Engaging) - { - stopLockProcess(); - } + TQTimer::singleShot(0, m_saverEngineEventHandler, TQ_SLOT(stopLockProcess())); } -//--------------------------------------------------------------------------- +// DCOP interface method bool SaverEngine::isEnabled() { return mEnabled; } -//--------------------------------------------------------------------------- -bool SaverEngine::enable( bool e ) +// DCOP interface method +bool SaverEngine::enable(bool e) { - if ( e == mEnabled ) - return true; + if (e == mEnabled) + return true; // If we aren't in a suitable state, we will not reconfigure. - if (mState != Waiting) + if (m_saverEngineEventHandler->getState() != SaverState::Waiting) return false; mEnabled = e; - if (mEnabled) { - if ( !mXAutoLock ) { + if (mEnabled) + { + if (!mXAutoLock) + { mXAutoLock = new XAutoLock(); - connect(mXAutoLock, TQT_SIGNAL(timeout()), TQT_SLOT(idleTimeout())); + connect(mXAutoLock, TQ_SIGNAL(timeout()), TQ_SLOT(idleTimeout())); } mXAutoLock->setTimeout(mTimeout); mXAutoLock->setDPMS(true); - //mXAutoLock->changeCornerLockStatus( mLockCornerTopLeft, mLockCornerTopRight, mLockCornerBottomLeft, mLockCornerBottomRight); // We'll handle blanking XSetScreenSaver(tqt_xdisplay(), mTimeout + 10, mXInterval, PreferBlanking, mXExposures); - kdDebug() << "XSetScreenSaver " << mTimeout + 10 << endl; - mXAutoLock->start(); - - kdDebug(1204) << "Saver Engine started, timeout: " << mTimeout << endl; + kdDebug(1204) << "Saver engine started, timeout: " << mTimeout << endl; } - else { - if (mXAutoLock) { + else + { + if (mXAutoLock) + { delete mXAutoLock; - mXAutoLock = 0; + mXAutoLock = nullptr; } - XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset ); + XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset); XSetScreenSaver(tqt_xdisplay(), 0, mXInterval, PreferBlanking, DontAllowExposures); - kdDebug(1204) << "Saver Engine disabled" << endl; + kdDebug(1204) << "Saver engine disabled" << endl; } return true; } -//--------------------------------------------------------------------------- +// DCOP interface method bool SaverEngine::isBlanked() { - return (mState != Waiting); + return (m_saverEngineEventHandler->getState() != SaverState::Waiting); } void SaverEngine::enableExports() { -#ifdef Q_WS_X11 - kdDebug(270) << k_lineinfo << "activating background exports.\n"; - DCOPClient *client = kapp->dcopClient(); - if (!client->isAttached()) { +#ifdef TQ_WS_X11 + kdDebug(270) << k_lineinfo << "activating background exports" << endl; + DCOPClient *client = tdeApp->dcopClient(); + if (!client->isAttached()) + { client->attach(); } TQByteArray data; - TQDataStream args( data, IO_WriteOnly ); + TQDataStream args(data, IO_WriteOnly); args << 1; - TQCString appname( "kdesktop" ); + TQCString appname("kdesktop"); int screen_number = DefaultScreen(tqt_xdisplay()); - if ( screen_number ) { - appname.sprintf("kdesktop-screen-%d", screen_number ); + if (screen_number) + { + appname.sprintf("kdesktop-screen-%d", screen_number); } - client->send( appname, "KBackgroundIface", "setExport(int)", data ); + client->send(appname, "KBackgroundIface", "setExport(int)", data); #endif } -//--------------------------------------------------------------------------- -void SaverEngine::handleSecureDialog() -{ - // Wait for SAK press - if (mSAKProcess && !mSAKProcess->isRunning()) { - mSAKProcess->start(); - } -} - -void SaverEngine::slotSAKProcessExited() -{ - if (!mSAKProcess) { - printf("[kdesktop] SAK process does not exist. Something went wrong. Ignoring...\n"); fflush(stdout); - return; - } - int retcode = mSAKProcess->exitStatus(); - if ((retcode != 0) && (mSAKProcess->normalExit())) { - trinity_lockeng_sak_available = FALSE; - printf("[kdesktop] SAK driven secure dialog is not available for use (retcode %d). Check tdmtsak for proper functionality.\n", retcode); fflush(stdout); - } - - if (mState == Preparing) { - return; - } - - if ((mSAKProcess->normalExit()) && (trinity_lockeng_sak_available == TRUE)) { - bool ok = true; - if (mState == Waiting) - { - ok = startLockProcess( SecureDialog ); - if( ok && mState != Saving ) - { - } - } - else - { - mLockProcess.kill( SIGHUP ); - } - } -} - -//--------------------------------------------------------------------------- -// // Read and apply configuration. -// void SaverEngine::configure() { // If we aren't in a suitable state, we will not reconfigure. - if (mState != Waiting) { + if (m_saverEngineEventHandler->getState() != SaverState::Waiting) + { return; } // create a new config obj to ensure we read the latest options KDesktopSettings::self()->readConfig(); - bool e = KDesktopSettings::screenSaverEnabled(); mTimeout = KDesktopSettings::timeout(); - - mEnabled = !e; // force the enable() + bool e = KDesktopSettings::screenSaverEnabled(); + mEnabled = !e; // enable the screensaver by forcibly toggling it + enable(e); int action; action = KDesktopSettings::actionTopLeft(); @@ -534,409 +425,257 @@ void SaverEngine::configure() xautolock_corners[2] = applyManualSettings(action); action = KDesktopSettings::actionBottomRight(); xautolock_corners[3] = applyManualSettings(action); - - enable( e ); } -//--------------------------------------------------------------------------- -// -// Set a variable to indicate only using the blanker and not the saver. -// -void SaverEngine::setBlankOnly( bool blankOnly ) +// DCOP interface method +// Set a variable to indicate only to blank the screen and not use the saver +void SaverEngine::setBlankOnly(bool blankOnly) { mBlankOnly = blankOnly; - // FIXME: if running, stop and restart? What about security - // implications of this? } -bool SaverEngine::restartDesktopLockProcess() +void SaverEngine::activateSaverOrLockGUI() { - if (!mLockProcess.isRunning()) { - mSaverProcessReady = false; - mLockProcess.clearArguments(); - TQString path = TDEStandardDirs::findExe( "kdesktop_lock" ); - if (path.isEmpty()) { - kdDebug( 1204 ) << "Can't find kdesktop_lock!" << endl; - return false; - } - mLockProcess << path; - mLockProcess << TQString( "--internal" ) << TQString( "%1" ).arg(getpid()); - if (mLockProcess.start() == false) { - kdDebug( 1204 ) << "Failed to start kdesktop_lock!" << endl; - return false; - } - // Wait for the saver process to signal ready... - if (!waitForLockProcessStart()) { - kdDebug( 1204 ) << "Failed to initialize kdesktop_lock (unexpected termination)!" << endl; - return false; - } - } - return true; -} - -//--------------------------------------------------------------------------- -// -// Start the screen saver. -// -bool SaverEngine::startLockProcess( LockType lock_type ) -{ - int ret; - - if (mState == Saving) { - return true; - } - - mState = Preparing; - if (mSAKProcess) { - mSAKProcess->kill(SIGTERM); - } - - enableExports(); - - kdDebug(1204) << "SaverEngine: starting saver" << endl; - emitDCOPSignal("KDE_start_screensaver()", TQByteArray()); - - if (!restartDesktopLockProcess()) { - mState = Waiting; - return false; - } - - switch( lock_type ) - { - case ForceLock: - mLockProcess.kill(SIGUSR1); // Request forcelock - break; - case DontLock: - mLockProcess.kill(SIGUSR2); // Request dontlock - break; - case SecureDialog: - mLockProcess.kill(SIGWINCH); // Request secure dialog - break; - default: - break; - } - if (mBlankOnly) { - mLockProcess.kill(SIGTTIN); // Request blanking - } - - ret = mLockProcess.kill(SIGTTOU); // Start lock - if (!ret) { - mState = Waiting; - return false; - } XSetScreenSaver(tqt_xdisplay(), 0, mXInterval, PreferBlanking, mXExposures); - - mState = Engaging; - if (mXAutoLock) { + if (mXAutoLock) + { mXAutoLock->stop(); } - return true; + emitDCOPSignal("KDE_start_screensaver()", TQByteArray()); } -//--------------------------------------------------------------------------- -// -// Stop the screen saver. -// -void SaverEngine::stopLockProcess() +void SaverEngine::stopLockProcessGUI() { - if (mState == Waiting) { - kdWarning(1204) << "SaverEngine::stopSaver() saver not active" << endl; - return; - } - kdDebug(1204) << "SaverEngine: stopping lock" << endl; emitDCOPSignal("KDE_stop_screensaver()", TQByteArray()); - mTerminationRequested = true; - mLockProcess.kill(); - - if (mEnabled) { - if (mXAutoLock) { + if (mEnabled) + { + if (mXAutoLock) + { mXAutoLock->start(); } - XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset ); + XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset); XSetScreenSaver(tqt_xdisplay(), mTimeout + 10, mXInterval, PreferBlanking, mXExposures); } processLockTransactions(); - mState = Waiting; - if( systemdSession && systemdSession->canSend() ) { + if (systemdSession && systemdSession->canSend()) + { TQValueList<TQT_DBusData> params; params << TQT_DBusData::fromBool(false); TQT_DBusMessage reply = systemdSession->sendWithReply("SetIdleHint", params); } } -void SaverEngine::recoverFromHackingAttempt() -{ - // Try to relaunch saver with forcelock - if (!startLockProcess(ForceLock)) { - // Terminate the TDE session ASAP! - // Values are explained at http://lists.kde.org/?l=kde-linux&m=115770988603387 - TQByteArray data; - TQDataStream arg(data, IO_WriteOnly); - arg << (int)0 << (int)0 << (int)2; - if (!kapp->dcopClient()->send("ksmserver", "default", "logout(int,int,int)", data)) { - // Someone got to DCOP before we did - // Try an emergency system logout - system("logout"); - } - } -} - -void SaverEngine::lockProcessExited() +void SaverEngine::terminateTDESession() { - bool abnormalExit = false; - if (mLockProcess.normalExit() == false) { - abnormalExit = true; - } - else { - if (mLockProcess.exitStatus() != 0) { - abnormalExit = true; - } - } - if (mTerminationRequested == true) { - abnormalExit = false; - mTerminationRequested = false; - } - if (abnormalExit == true) { - // PROBABLE HACKING ATTEMPT DETECTED - restartDesktopLockProcess(); - mState = Waiting; - TQTimer::singleShot( 100, this, SLOT(recoverFromHackingAttempt()) ); - } - else { - // Restart the lock process - restartDesktopLockProcess(); + // Terminate the TDE session ASAP! + // Values are explained at http://lists.kde.org/?l=kde-linux&m=115770988603387 + TQByteArray data; + TQDataStream arg(data, IO_WriteOnly); + arg << (int)0 << (int)0 << (int)2; + if (!tdeApp->dcopClient()->send("ksmserver", "default", "logout(int,int,int)", data)) + { + // Someone got to DCOP before we did. Try an emergency system logout + system("logout"); } } -void SaverEngineThreadHelperObject::slotLockProcessWaiting() -{ - // lockProcessWaiting cannot be called directly from a signal handler, as it will hang in certain obscure circumstances - // Instead we use a single-shot timer to immediately call lockProcessWaiting once control has returned to the Qt main loop - lockProcessWaiting(); -} - -void SaverEngineThreadHelperObject::slotLockProcessFullyActivated() -{ - lockProcessFullyActivated(); -} - -void SaverEngine::lockProcessFullyActivated() +void SaverEngine::lockProcessFullyActivatedGUI() { - mState = Saving; - - if( systemdSession && systemdSession->canSend() ) { + if (systemdSession && systemdSession->canSend()) + { TQValueList<TQT_DBusData> params; params << TQT_DBusData::fromBool(true); TQT_DBusMessage reply = systemdSession->sendWithReply("SetIdleHint", params); } - if (mNewVTAfterLockEngage) { + if (mNewVTAfterLockEngage) + { DM().startReserve(); mNewVTAfterLockEngage = false; } - else if (mSwitchVTAfterLockEngage != -1) { + else if (mSwitchVTAfterLockEngage != -1) + { DM().switchVT(mSwitchVTAfterLockEngage); mSwitchVTAfterLockEngage = -1; } } -void SaverEngine::slotLockProcessReady() -{ - mSaverProcessReady = true; -} - -void SaverEngine::lockProcessWaiting() -{ - kdDebug(1204) << "SaverEngine: lock exited" << endl; - if (trinity_lockeng_sak_available == TRUE) { - handleSecureDialog(); - } - if( mState == Waiting ) { - return; - } - emitDCOPSignal("KDE_stop_screensaver()", TQByteArray()); - if (mEnabled) { - if (mXAutoLock) { - mXAutoLock->start(); - } - XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset ); - XSetScreenSaver(tqt_xdisplay(), mTimeout + 10, mXInterval, PreferBlanking, mXExposures); - } - processLockTransactions(); - mState = Waiting; - - if( systemdSession && systemdSession->canSend() ) { - TQValueList<TQT_DBusData> params; - params << TQT_DBusData::fromBool(false); - TQT_DBusMessage reply = systemdSession->sendWithReply("SetIdleHint", params); - } -} - -//--------------------------------------------------------------------------- -// // XAutoLock has detected the required idle time. -// void SaverEngine::idleTimeout() { - if (!mValidCryptoCardInserted) { + if (!mValidCryptoCardInserted) + { // disable X screensaver - XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset ); + XForceScreenSaver(tqt_xdisplay(), ScreenSaverReset); XSetScreenSaver(tqt_xdisplay(), 0, mXInterval, PreferBlanking, DontAllowExposures); - startLockProcess( DefaultLock ); + emit activateSaverOrLockSignal(DefaultLock); } } xautolock_corner_t SaverEngine::applyManualSettings(int action) { - if (action == 0) { + if (action == 0) + { kdDebug() << "no lock" << endl; return ca_nothing; } - else if (action == 1) { + else if (action == 1) + { kdDebug() << "lock screen" << endl; return ca_forceLock; } - else if (action == 2) { + else if (action == 2) + { kdDebug() << "prevent lock" << endl; return ca_dontLock; } - else{ + else + { kdDebug() << "no lock nothing" << endl; return ca_nothing; } } -/*! - * This function try a reconnect to D-Bus. +/* + * This function try to reconnect to D-Bus. * \return boolean with the result of the operation * \retval true if successful reconnected to D-Bus * \retval false if unsuccessful */ -bool SaverEngine::dBusReconnect() { - // close D-Bus connection - dBusClose(); - // init D-Bus conntection - return (dBusConnect()); -} +bool SaverEngine::dBusReconnect() +{ + dBusClose(); // close D-Bus connection + return (dBusConnect()); // init D-Bus conntection +} -/*! - * This function is used to close D-Bus connection. - */ -void SaverEngine::dBusClose() { - if( dBusConn.isConnected() ) { - if( dBusLocal ) { +// This function is used to close D-Bus connection. +void SaverEngine::dBusClose() +{ + if (dBusConn.isConnected()) + { + if (dBusLocal) + { delete dBusLocal; - dBusLocal = 0; + dBusLocal = nullptr; } - if( dBusWatch ) { + if (dBusWatch) + { delete dBusWatch; - dBusWatch = 0; + dBusWatch = nullptr; } - if( systemdSession ) { + if (systemdSession) + { delete systemdSession; - systemdSession = 0; + systemdSession = nullptr; } } dBusConn.closeConnection(DBUS_CONN_NAME); } -/*! - * This function is used to connect to D-Bus. - */ -bool SaverEngine::dBusConnect() { +// This function is used to connect to D-Bus. +bool SaverEngine::dBusConnect() +{ dBusConn = TQT_DBusConnection::addConnection(TQT_DBusConnection::SystemBus, DBUS_CONN_NAME); - if( !dBusConn.isConnected() ) { + if (!dBusConn.isConnected()) + { kdError() << "Failed to open connection to system message bus: " << dBusConn.lastError().message() << endl; - TQTimer::singleShot(4000, this, TQT_SLOT(dBusReconnect())); + TQTimer::singleShot(4000, this, TQ_SLOT(dBusReconnect())); return false; } // watcher for Disconnect signal dBusLocal = new TQT_DBusProxy(DBUS_SERVICE_DBUS, DBUS_PATH_LOCAL, DBUS_INTERFACE_LOCAL, dBusConn); - TQObject::connect(dBusLocal, TQT_SIGNAL(dbusSignal(const TQT_DBusMessage&)), - this, TQT_SLOT(handleDBusSignal(const TQT_DBusMessage&))); + TQObject::connect(dBusLocal, TQ_SIGNAL(dbusSignal(const TQT_DBusMessage&)), + this, TQ_SLOT(handleDBusSignal(const TQT_DBusMessage&))); // watcher for NameOwnerChanged signals dBusWatch = new TQT_DBusProxy(DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, dBusConn); - TQObject::connect(dBusWatch, TQT_SIGNAL(dbusSignal(const TQT_DBusMessage&)), - this, TQT_SLOT(handleDBusSignal(const TQT_DBusMessage&))); + TQObject::connect(dBusWatch, TQ_SIGNAL(dbusSignal(const TQT_DBusMessage&)), + this, TQ_SLOT(handleDBusSignal(const TQT_DBusMessage&))); // find already running SystemD TQT_DBusProxy checkSystemD(DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS, dBusConn); - if( checkSystemD.canSend() ) { + if (checkSystemD.canSend()) + { TQValueList<TQT_DBusData> params; params << TQT_DBusData::fromString(SYSTEMD_LOGIN1_SERVICE); TQT_DBusMessage reply = checkSystemD.sendWithReply("NameHasOwner", params); - if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1 && reply[0].toBool() ) { + if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1 && reply[0].toBool()) + { onDBusServiceRegistered(SYSTEMD_LOGIN1_SERVICE); } } return true; } -/*! - * This function handles D-Bus service registering - */ -void SaverEngine::onDBusServiceRegistered(const TQString& service) { - if( service == SYSTEMD_LOGIN1_SERVICE ) { +// This function handles D-Bus service registering +void SaverEngine::onDBusServiceRegistered(const TQString& service) +{ + if (service == SYSTEMD_LOGIN1_SERVICE) + { // get current systemd session TQT_DBusProxy managerIface(SYSTEMD_LOGIN1_SERVICE, SYSTEMD_LOGIN1_PATH, SYSTEMD_LOGIN1_MANAGER_IFACE, dBusConn); TQT_DBusObjectPath systemdSessionPath = TQT_DBusObjectPath(); - if( managerIface.canSend() ) { + if (managerIface.canSend()) + { TQValueList<TQT_DBusData> params; - params << TQT_DBusData::fromUInt32( getpid() ); + params << TQT_DBusData::fromUInt32(getpid()); TQT_DBusMessage reply = managerIface.sendWithReply("GetSessionByPID", params); - if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1 ) { + if (reply.type() == TQT_DBusMessage::ReplyMessage && reply.count() == 1) + { systemdSessionPath = reply[0].toObjectPath(); } } // wather for systemd session signals - if( systemdSessionPath.isValid() ) { + if (systemdSessionPath.isValid()) + { systemdSession = new TQT_DBusProxy(SYSTEMD_LOGIN1_SERVICE, systemdSessionPath, SYSTEMD_LOGIN1_SESSION_IFACE, dBusConn); - TQObject::connect(systemdSession, TQT_SIGNAL(dbusSignal(const TQT_DBusMessage&)), - this, TQT_SLOT(handleDBusSignal(const TQT_DBusMessage&))); + TQObject::connect(systemdSession, TQ_SIGNAL(dbusSignal(const TQT_DBusMessage&)), + this, TQ_SLOT(handleDBusSignal(const TQT_DBusMessage&))); } return; } } -/*! - * This function handles D-Bus service unregistering - */ -void SaverEngine::onDBusServiceUnregistered(const TQString& service) { - if( service == SYSTEMD_LOGIN1_SERVICE ) { - if( systemdSession ) { +// This function handles D-Bus service unregistering +void SaverEngine::onDBusServiceUnregistered(const TQString& service) +{ + if (service == SYSTEMD_LOGIN1_SERVICE) + { + if (systemdSession) + { delete systemdSession; - systemdSession = 0; + systemdSession = nullptr; } return; } } -/*! - * This function handles signals from the D-Bus daemon. - */ -void SaverEngine::handleDBusSignal(const TQT_DBusMessage& msg) { +// This function handles signals from the D-Bus daemon. +void SaverEngine::handleDBusSignal(const TQT_DBusMessage& msg) +{ // dbus terminated - if( msg.path() == DBUS_PATH_LOCAL - && msg.interface() == DBUS_INTERFACE_LOCAL - && msg.member() == "Disconnected" ) { + if (msg.path() == DBUS_PATH_LOCAL && msg.interface() == DBUS_INTERFACE_LOCAL && + msg.member() == "Disconnected") + { dBusClose(); - TQTimer::singleShot(1000, this, TQT_SLOT(dBusReconnect())); + TQTimer::singleShot(1000, this, TQ_SLOT(dBusReconnect())); return; } // service registered / unregistered - if( msg.path() == DBUS_PATH_DBUS - && msg.interface() == DBUS_INTERFACE_DBUS - && msg.member() == "NameOwnerChanged" ) { - if( msg[1].toString().isEmpty() ) { + if (msg.path() == DBUS_PATH_DBUS && msg.interface() == DBUS_INTERFACE_DBUS && + msg.member() == "NameOwnerChanged") + { + if (msg[1].toString().isEmpty()) + { // old-owner is empty onDBusServiceRegistered(msg[0].toString()); } - if( msg[2].toString().isEmpty() ) { + if (msg[2].toString().isEmpty()) + { // new-owner is empty onDBusServiceUnregistered(msg[0].toString()); } @@ -944,69 +683,367 @@ void SaverEngine::handleDBusSignal(const TQT_DBusMessage& msg) { } // systemd signal Lock() - if( systemdSession && systemdSession->canSend() - && msg.path() == systemdSession->path() - && msg.interface() == SYSTEMD_LOGIN1_SESSION_IFACE - && msg.member() == "Lock") { + if (systemdSession && systemdSession->canSend() && msg.path() == systemdSession->path() && + msg.interface() == SYSTEMD_LOGIN1_SESSION_IFACE && msg.member() == "Lock") + { lockScreen(); return; } // systemd signal Unlock() - if( systemdSession && systemdSession->canSend() - && msg.path() == systemdSession->path() - && msg.interface() == SYSTEMD_LOGIN1_SESSION_IFACE - && msg.member() == "Unlock") { + if (systemdSession && systemdSession->canSend() && msg.path() == systemdSession->path() && + msg.interface() == SYSTEMD_LOGIN1_SESSION_IFACE && msg.member() == "Unlock") + { // unlock? return; } } -bool SaverEngine::waitForLockProcessStart() { - sigset_t new_mask; - sigset_t empty_mask; - sigemptyset(&empty_mask); +void SaverEngine::lockScreenAndDoNewSession() +{ + mNewVTAfterLockEngage = true; + lockScreen(); +} - // ensure that SIGCHLD is not subject to a race condition - sigemptyset(&new_mask); - sigaddset(&new_mask, SIGCHLD); +void SaverEngine::lockScreenAndSwitchSession(int vt) +{ + mSwitchVTAfterLockEngage = vt; + lockScreen(); +} - pthread_sigmask(SIG_BLOCK, &new_mask, NULL); - while ((mLockProcess.isRunning()) && (!mSaverProcessReady)) { - // wait for any signal(s) to arrive - sigsuspend(&empty_mask); +SaverEngineEventHandler::SaverEngineEventHandler(SaverEngine *engine) : + m_state(Waiting), m_saverProcessReady(false), m_lockProcessRestarting(false), + m_terminationRequest(false), m_saverEngine(engine), m_SAKProcess(nullptr) +{ + connect(&m_lockProcess, TQ_SIGNAL(processExited(TDEProcess*)), + this, TQ_SLOT(slotLockProcessExited())); +} + +void SaverEngineEventHandler::terminateLockProcess() +{ + if (m_state == Waiting) + { + kill(m_lockProcess.pid(), SIGKILL); } - pthread_sigmask(SIG_UNBLOCK, &new_mask, NULL); + m_lockProcess.detach(); // don't kill it if we crash +} + +void SaverEngineEventHandler::lockCompleted() +{ + kdDebug(1204) << "SaverEngineEventHandler: lock completed" << endl; - return mLockProcess.isRunning(); + if (m_state == Waiting) + { + return; + } + + m_state = Waiting; + if (trinity_lockeng_sak_available) + { + startSAKProcess(); + } + TQTimer::singleShot(0, m_saverEngine, TQ_SLOT(stopLockProcessGUI())); } -bool SaverEngine::waitForLockEngage() { - sigset_t empty_mask; - sigemptyset(&empty_mask); +void SaverEngineEventHandler::lockFullyActivated() +{ + m_state = Saving; + TQTimer::singleShot(0, m_saverEngine, TQ_SLOT(lockProcessFullyActivatedGUI())); +} + +void SaverEngineEventHandler::lockReady() +{ + m_saverProcessReady = true; +} - // wait for SIGUSR1, SIGUSR2, SIGTTIN - while ((mLockProcess.isRunning()) && (mState != Waiting) && (mState != Saving)) { - // wait for any signal(s) to arrive - sigsuspend(&empty_mask); +void SaverEngineEventHandler::lockScreen(bool dcop) +{ + if (m_lockProcessRestarting) + { + kdDebug(1204) << "SaverEngineEventHandler: lock process is restarting, can't handle lock request" << endl; + return; } - return mLockProcess.isRunning(); + bool ok = true; + if (m_state == Waiting) + { + ok = activateSaverOrLock(ForceLock); + // It takes a while for kdesktop_lock to start and lock the screen. + // Therefore delay the DCOP call until it tells kdesktop that the locking is in effect. + // This is done only for --forcelock . + if (ok && m_state != Saving) + { + if (dcop) + { + TQTimer::singleShot(0, m_saverEngine, TQ_SLOT(lockScreenGUI())); + } + } + } } -void SaverEngine::lockScreenAndDoNewSession() { - mNewVTAfterLockEngage = true; - lockScreen(); +void SaverEngineEventHandler::saveScreen() +{ + if (m_lockProcessRestarting) + { + kdDebug(1204) << "SaverEngineEventHandler: lock process is restarting, can't handle save request" << endl; + return; + } + + if (m_state == Waiting) + { + activateSaverOrLock(DefaultLock); + } } -void SaverEngine::lockScreenAndSwitchSession(int vt) { - mSwitchVTAfterLockEngage = vt; - lockScreen(); +void SaverEngineEventHandler::slotLockProcessExited() +{ + // Clean up status after the lock process has exited + lockCompleted(); + + m_lockProcessRestarting = true; + + bool abnormalExit = false; + if (!m_lockProcess.normalExit()) + { + abnormalExit = true; + } + else if (m_lockProcess.exitStatus() != 0) + { + abnormalExit = true; + } + if (m_terminationRequest) + { + abnormalExit = false; + m_terminationRequest = false; + } + + // Restart the lock process. This call blocks till + // the lock process has restarted. + restartLockProcess(); + + if (abnormalExit) + { + // Possible hacking attempt detected, try to relaunch the saver with force lock + m_state = Waiting; + if (!activateSaverOrLock(ForceLock)) + { + TQTimer::singleShot(0, m_saverEngine, TQ_SLOT(terminateTDESession())); + } + } + m_lockProcessRestarting = false; } -void SaverEngineThreadHelperObject::terminateThread() { - TQEventLoop* eventLoop = TQApplication::eventLoop(); - if (eventLoop) { +/* + * Start or restart the lock process. + * On the very first invocation, launch the SAK process if required and + * auto lock the screen if the option has been enabled in the configuration. + */ +bool SaverEngineEventHandler::restartLockProcess() +{ + static bool firstStart = true; + + bool autoLoginEnable = false; + bool autoLoginLocked = false; + if (firstStart) + { + firstStart = false; + + // Create SAK process only if SAK is enabled + struct stat st; + TDESimpleConfig *config; + if (stat(KDE_CONFDIR "/tdm/tdmdistrc" , &st) == 0) + { + config = new TDESimpleConfig(TQString::fromLatin1(KDE_CONFDIR "/tdm/tdmdistrc")); + } + else + { + config = new TDESimpleConfig(TQString::fromLatin1(KDE_CONFDIR "/tdm/tdmrc")); + } + config->setGroup("X-:*-Greeter"); + bool useSAKProcess = false; +#ifdef BUILD_TSAK + useSAKProcess = config->readBoolEntry("UseSAK", false) && KDesktopSettings::useTDESAK(); +#endif + if (useSAKProcess) + { + startSAKProcess(); + } + + // autolock the desktop if required + config->setGroup("X-:0-Core"); + autoLoginEnable = config->readBoolEntry("AutoLoginEnable", false); + autoLoginLocked = config->readBoolEntry("AutoLoginLocked", false); + delete config; + } + + // (Re)start the lock process + if (!m_lockProcess.isRunning()) + { + m_lockProcess.clearArguments(); + TQString path = TDEStandardDirs::findExe("kdesktop_lock"); + if (path.isEmpty()) + { + kdDebug(1204) << "Can't find kdesktop_lock!" << endl; + return false; + } + m_lockProcess << path; + m_lockProcess << TQString("--internal") << TQString("%1").arg(getpid()); + + m_saverProcessReady = false; + if (!m_lockProcess.start()) + { + kdDebug(1204) << "Failed to start kdesktop_lock!" << endl; + return false; + } + // Wait for the lock process to signal that it is ready + sigset_t empty_mask; + sigemptyset(&empty_mask); + while (!m_saverProcessReady) + { + sigsuspend(&empty_mask); + } + if (!m_lockProcess.isRunning()) + { + kdDebug(1204) << "Failed to initialize kdesktop_lock (unexpected termination)!" << endl; + return false; + } + } + + if (autoLoginEnable && autoLoginLocked) + { + m_lockProcess.kill(SIGTTOU); + m_lockProcess.kill(SIGUSR1); + } + return true; +} + +// Start the screen saver or lock screen +bool SaverEngineEventHandler::activateSaverOrLock(LockType lock_type) +{ + if (m_state == Saving) + { + return true; + } + + kdDebug(1204) << "SaverEngineEventHandler: starting saver" << endl; + m_state = Preparing; + if (m_SAKProcess) + { + m_SAKProcess->kill(SIGTERM); + } + + m_saverEngine->enableExports(); + if (!restartLockProcess()) + { + m_state = Waiting; + return false; + } + + switch (lock_type) + { + case ForceLock: + m_lockProcess.kill(SIGUSR1); // Request forcelock + break; + case DontLock: + m_lockProcess.kill(SIGUSR2); // Request dontlock + break; + case SecureDialog: + m_lockProcess.kill(SIGWINCH); // Request secure dialog + break; + default: + break; + } + + if (m_saverEngine->mBlankOnly) + { + m_lockProcess.kill(SIGTTIN); // Request blanking + } + + int ret = m_lockProcess.kill(SIGTTOU); // Start lock + if (!ret) + { + m_state = Waiting; + return false; + } + m_state = Engaging; + + // Ask to the GUI thread to activate X11 saver + TQTimer::singleShot(0, m_saverEngine, TQ_SLOT(activateSaverOrLockGUI())); + + return true; +} + +// Stop the screen saver. +void SaverEngineEventHandler::stopLockProcess() +{ + if (m_state == Waiting) + { + return; + } + + kdDebug(1204) << "SaverEngineEventHandler: stopping lock process" << endl; + + m_terminationRequest = true; + m_lockProcess.kill(); + m_state = Waiting; + + // Ask to the GUI thread to stop the X11 saver + TQTimer::singleShot(0, m_saverEngine, TQ_SLOT(stopLockProcessGUI())); +} + +void SaverEngineEventHandler::startSAKProcess() +{ + if (!m_SAKProcess) + { + m_SAKProcess = new TDEProcess; + *m_SAKProcess << "tdmtsak"; + connect(m_SAKProcess, TQ_SIGNAL(processExited(TDEProcess*)), this, TQ_SLOT(slotSAKProcessExited())); + } + if (!m_SAKProcess->isRunning()) + { + m_SAKProcess->start(); + } +} + +void SaverEngineEventHandler::slotSAKProcessExited() +{ + if (!m_SAKProcess) + { + tqWarning("[kdesktop] SAK process does not exist. Something went wrong. Ignoring."); + return; + } + + int retcode = m_SAKProcess->exitStatus(); + if (retcode && m_SAKProcess->normalExit()) + { + trinity_lockeng_sak_available = false; + tqWarning("[kdesktop] SAK driven secure dialog is not available for use (retcode %d). " + "Check tdmtsak for proper functionality.", retcode); + } + + if (m_state == Preparing) + { + return; + } + + if (m_SAKProcess->normalExit() && trinity_lockeng_sak_available) + { + if (m_state == Waiting) + { + activateSaverOrLock(SecureDialog); + } + else + { + m_lockProcess.kill(SIGHUP); + } + } +} + +void SaverEngineEventHandler::terminateThread() +{ + TQEventLoop *eventLoop = TQApplication::eventLoop(); + if (eventLoop) + { eventLoop->exit(0); } } diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h index f8b461547..11806e73c 100644 --- a/kdesktop/lockeng.h +++ b/kdesktop/lockeng.h @@ -1,6 +1,5 @@ -//=========================================================================== // -// This file is part of the KDE project +// This file is part of the TDE project // // Copyright (c) 1999 Martin R. Jones <mjones@kde.org> // @@ -8,9 +7,8 @@ #ifndef __LOCKENG_H__ #define __LOCKENG_H__ -#include <tqwidget.h> #include <tqthread.h> -#include <kprocess.h> +#include <tdeprocess.h> #include <tqvaluevector.h> #include "KScreensaverIface.h" #include "xautolock.h" @@ -23,32 +21,49 @@ class TDECryptographicCardDevice; #else #define TDECryptographicCardDevice void #endif + +/** + * Screen saver engine. Handles communication with the lock process. + * The engine is split into two parts, the 'SaverEngine' running in the GUI thread and + * the 'SaverEngineEventHandler' running in a separate thread and eventloop. + * The 'SaverEngine' handles communication with X11, DCOP and DBUS while the + * 'SaverEngineEventHandler' handles communication with the actual lock process. + * Several actions require cooperation of the two parts, so in various methods + * there will be inter-thread calls (using timers or by emitting signals) to + * trigger the other side remaining logic. + * This complex design is necessary to avoid blocking the main GUI application event loop, + * which has several tasks to manage and therefore can't affort to wait in a suspended state. + * This was previously leading to deadlock when DCOP calls where executed on the secondary + * thread/eventloop, for example when changing desktop while the lock process was restarting. + */ + class DCOPClientTransaction; class TQT_DBusMessage; class TQT_DBusProxy; +class SaverEngineEventHandler; -class SaverEngineThreadHelperObject : public TQObject +// Type of lock screen +enum LockType : int { - Q_OBJECT - -public slots: - void terminateThread(); - void slotLockProcessWaiting(); - void slotLockProcessFullyActivated(); + DontLock = 0, + DefaultLock, + ForceLock, + SecureDialog +}; -signals: - void lockProcessWaiting(); - void lockProcessFullyActivated(); +enum SaverState +{ + Waiting, + Preparing, + Engaging, + Saving }; -//=========================================================================== -/** - * Screen saver engine. Handles screensaver window, starting screensaver - * hacks, and password entry. - */ -class SaverEngine : public TQWidget, public KScreensaverIface +class SaverEngine : public TQObject, public KScreensaverIface { - Q_OBJECT + friend class SaverEngineEventHandler; + + TQ_OBJECT public: SaverEngine(); ~SaverEngine(); @@ -100,80 +115,52 @@ public: */ virtual void saverLockReady(); - /** - * @internal - */ void lockScreen(bool DCOP = false); - /** - * Called by KDesktop to wait for saver engage - * @internal - */ - bool waitForLockEngage(); - - /** - * @internal - */ void lockScreenAndDoNewSession(); - - /** - * @internal - */ void lockScreenAndSwitchSession(int vt); + void enableExports(); // Enable wallpaper exports + signals: - void terminateHelperThread(); - void asyncLock(); + void activateSaverOrLockSignal(LockType lock_type); + void lockScreenSignal(bool); + void terminateEventHandlerThread(); public slots: - void slotLockProcessReady(); - void lockProcessWaiting(); - void lockProcessFullyActivated(); void handleDBusSignal(const TQT_DBusMessage&); + void terminateTDESession(); protected slots: void idleTimeout(); - void lockProcessExited(); private slots: - void handleSecureDialog(); - void slotSAKProcessExited(); - void cryptographicCardInserted(TDECryptographicCardDevice*); void cryptographicCardRemoved(TDECryptographicCardDevice*); - - /** - * Enable wallpaper exports - */ - void enableExports(); - void recoverFromHackingAttempt(); void cardStartupTimeout(); - bool dBusReconnect(); + // The following slots are invoked by corresponding methods named without the 'GUI' suffix + // in 'SaverEngineEventHandler' to complete the remaining X11 part of the actions + void activateSaverOrLockGUI(); + void lockProcessFullyActivatedGUI(); + void lockScreenGUI(); + void stopLockProcessGUI(); + private: - bool restartDesktopLockProcess(); void dBusClose(); bool dBusConnect(); void onDBusServiceRegistered(const TQString&); void onDBusServiceUnregistered(const TQString&); protected: - enum SaverState { Waiting, Preparing, Engaging, Saving }; - enum LockType { DontLock, DefaultLock, ForceLock, SecureDialog }; - bool startLockProcess( LockType lock_type ); - bool waitForLockProcessStart(); - void stopLockProcess(); - bool handleKeyPress(XKeyEvent *xke); void processLockTransactions(); xautolock_corner_t applyManualSettings(int); protected: bool mEnabled; - SaverState mState; XAutoLock *mXAutoLock; - TDEProcess mLockProcess; int mTimeout; // the original X screensaver parameters @@ -182,26 +169,60 @@ protected: int mXBlanking; int mXExposures; - bool mBlankOnly; // only use the blanker, not the defined saver TQValueVector< DCOPClientTransaction* > mLockTransactions; public: - SaverEngineThreadHelperObject* m_threadHelperObject; + bool mBlankOnly; // only use the blanker, not the defined saver // protected + SaverEngineEventHandler *m_saverEngineEventHandler; private: - TQEventLoopThread* m_helperThread; - sigset_t mThreadBlockSet; - TDEProcess* mSAKProcess; - bool mTerminationRequested; - bool mSaverProcessReady; + TQEventLoopThread* m_eventHandlerThread; bool mNewVTAfterLockEngage; bool mValidCryptoCardInserted; int mSwitchVTAfterLockEngage; struct sigaction mSignalAction; TQT_DBusConnection dBusConn; - TQT_DBusProxy* dBusLocal; - TQT_DBusProxy* dBusWatch; - TQT_DBusProxy* systemdSession; + TQT_DBusProxy *dBusLocal; + TQT_DBusProxy *dBusWatch; + TQT_DBusProxy *systemdSession; +}; + +class SaverEngineEventHandler : public TQObject +{ + TQ_OBJECT + +public: + SaverEngineEventHandler(SaverEngine *engine); + + SaverState getState() const { return m_state; } + + void lockCompleted(); + void lockFullyActivated(); + void lockReady(); + void terminateLockProcess(); + +public slots: + bool activateSaverOrLock(LockType lock_type); + void lockScreen(bool DCOP = false); + bool restartLockProcess(); + void saveScreen(); + void stopLockProcess(); + void terminateThread(); + +protected slots: + void slotLockProcessExited(); + void slotSAKProcessExited(); + +protected: + void startSAKProcess(); + + bool m_saverProcessReady; + bool m_lockProcessRestarting; + bool m_terminationRequest; + SaverState m_state; + SaverEngine *m_saverEngine; + TDEProcess *m_SAKProcess; + TDEProcess m_lockProcess; }; #endif diff --git a/kdesktop/main.cpp b/kdesktop/main.cpp index b54c03cb7..0465068b6 100644 --- a/kdesktop/main.cpp +++ b/kdesktop/main.cpp @@ -18,13 +18,13 @@ */ #include <config.h> -#include <kuniqueapplication.h> +#include <tdeuniqueapplication.h> #include <tdelocale.h> #include <dcopclient.h> #include <tdeaboutdata.h> #include <tdecmdlineargs.h> #include <kopenwith.h> -#include <kcrash.h> +#include <tdecrash.h> #include <kdebug.h> #include <tdeglobalsettings.h> #include <tdeglobal.h> @@ -43,7 +43,7 @@ #include <fcntl.h> #include <stdlib.h> -#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 +#if defined(TQ_WS_X11) && defined(HAVE_XRENDER) && TQT_VERSION >= 0x030300 #define COMPOSITE #endif @@ -71,7 +71,7 @@ static TDECmdLineOptions options[] = }; bool argb_visual = false; -KDesktopApp *myApp = NULL; +KDesktopApp *myApp = nullptr; // ----------------------------------------------------------------------------- @@ -94,8 +94,8 @@ static void signalHandler(int sigId) // try to cleanup all windows signal(SIGTERM, SIG_DFL); // next one kills signal(SIGHUP, SIG_DFL); // next one kills - if (kapp) - kapp->quit(); // turn catchable signals into clean shutdown + if (tdeApp) + tdeApp->quit(); // turn catchable signals into clean shutdown } void KDesktop::slotUpAndRunning() @@ -105,7 +105,7 @@ void KDesktop::slotUpAndRunning() TDECrash::setEmergencySaveFunction(crashHandler); // Try to restart on crash } -extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) +extern "C" TDE_EXPORT int kdemain( int argc, char **argv ) { //setup signal handling signal(SIGTERM, signalHandler); @@ -184,7 +184,7 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) TDECmdLineArgs::init( argc, argv, &aboutData ); TDECmdLineArgs::addCmdLineOptions( options ); - if (!KUniqueApplication::start()) { + if (!TDEUniqueApplication::start()) { fprintf(stderr, "kdesktop is already running!\n"); exit(0); } @@ -247,11 +247,11 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) *qt_no_foreign_hack = true; // else argb_visual = false ... ? *shrug* if( argb_visual ) - myApp = new KDesktopApp( dpy, Qt::HANDLE( visual ), 0 ); + myApp = new KDesktopApp( dpy, TQt::HANDLE( visual ), 0 ); else XCloseDisplay( dpy ); } - if( myApp == NULL ) + if (!myApp) myApp = new KDesktopApp; #else myApp = new KDesktopApp; @@ -260,9 +260,6 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) KDesktopSettings::instance(kdesktop_name + "rc"); - bool x_root_hack = args->isSet("x-root"); - bool wait_for_kded = args->isSet("waitforkded"); - // This MUST be created before any widgets are created SaverEngine saver; @@ -273,22 +270,21 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) // Mark kdeskop as immutable if all of its config modules have been disabled if (!myApp->config()->isImmutable() && - kapp->authorizeControlModules(KRootWm::configModules()).isEmpty()) + tdeApp->authorizeControlModules(KRootWm::configModules()).isEmpty()) { myApp->config()->setReadOnly(true); myApp->config()->reparseConfiguration(); } - // for the KDE-already-running check in starttde - TDESelectionOwner kde_running( "_KDE_RUNNING", 0 ); - kde_running.claim( false ); + // for the TDE-already-running check in starttde + TDESelectionOwner tde_running( "_KDE_RUNNING", 0 ); + tde_running.claim( false ); + bool x_root_hack = args->isSet("x-root"); + bool wait_for_kded = args->isSet("waitforkded"); KDesktop desktop( &saver, x_root_hack, wait_for_kded ); args->clear(); - myApp->dcopClient()->setDefaultObject( "KDesktopIface" ); - - return myApp->exec(); } diff --git a/kdesktop/minicli.cpp b/kdesktop/minicli.cpp index 0f49229a6..2ac8b3ecd 100644 --- a/kdesktop/minicli.cpp +++ b/kdesktop/minicli.cpp @@ -50,7 +50,7 @@ #include <dcopclient.h> #include <tdelocale.h> #include <tdemessagebox.h> -#include <kprocess.h> +#include <tdeprocess.h> #include <kcombobox.h> #include <klineedit.h> #include <tdeapplication.h> @@ -59,7 +59,7 @@ #include <krun.h> #include <twin.h> #include <tdesu/su.h> -#include <kstandarddirs.h> +#include <tdestandarddirs.h> #include <tdeconfig.h> #include <kiconloader.h> #include <kpushbutton.h> @@ -101,7 +101,7 @@ Minicli::Minicli( TQWidget *parent, const char *name) // Cancel button... m_dlg->pbCancel->setGuiItem ( KStdGuiItem::cancel() ); - if (!kapp->authorize("shell_access")) + if (!tdeApp->authorize("shell_access")) m_dlg->pbOptions->hide(); m_dlg->pbRun->setEnabled(!m_dlg->cbCommand->currentText().isEmpty()); @@ -131,34 +131,34 @@ Minicli::Minicli( TQWidget *parent, const char *name) m_pURLCompletion = new KURLCompletion(KURLCompletion::FileCompletion); m_pEXECompletion = new KURLCompletion(KURLCompletion::SystemExeCompletion); //m_pURLCompletion->setCompletionMode( TDEGlobalSettings::completionMode() ); - connect( m_pURLCompletion, TQT_SIGNAL( match(const TQString&) ), TQT_SLOT( slotMatch(const TQString&) )); - connect( m_pEXECompletion, TQT_SIGNAL( match(const TQString&) ), TQT_SLOT( slotEXEMatch(const TQString&) )); + connect( m_pURLCompletion, TQ_SIGNAL( match(const TQString&) ), TQ_SLOT( slotMatch(const TQString&) )); + connect( m_pEXECompletion, TQ_SIGNAL( match(const TQString&) ), TQ_SLOT( slotEXEMatch(const TQString&) )); // Main widget buttons... - connect( m_dlg->pbRun, TQT_SIGNAL(clicked()), this, TQT_SLOT(accept()) ); - connect( m_dlg->pbCancel, TQT_SIGNAL(clicked()), this, TQT_SLOT(reject()) ); - connect( m_dlg->pbOptions, TQT_SIGNAL(clicked()), TQT_SLOT(slotAdvanced()) ); - connect( m_parseTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotParseTimer()) ); + connect( m_dlg->pbRun, TQ_SIGNAL(clicked()), this, TQ_SLOT(accept()) ); + connect( m_dlg->pbCancel, TQ_SIGNAL(clicked()), this, TQ_SLOT(reject()) ); + connect( m_dlg->pbOptions, TQ_SIGNAL(clicked()), TQ_SLOT(slotAdvanced()) ); + connect( m_parseTimer, TQ_SIGNAL(timeout()), TQ_SLOT(slotParseTimer()) ); - connect( m_dlg->cbCommand, TQT_SIGNAL( textChanged( const TQString& ) ), - TQT_SLOT( slotCmdChanged(const TQString&) ) ); + connect( m_dlg->cbCommand, TQ_SIGNAL( textChanged( const TQString& ) ), + TQ_SLOT( slotCmdChanged(const TQString&) ) ); - connect( m_dlg->cbCommand, TQT_SIGNAL( returnPressed() ), - m_dlg->pbRun, TQT_SLOT( animateClick() ) ); + connect( m_dlg->cbCommand, TQ_SIGNAL( returnPressed() ), + m_dlg->pbRun, TQ_SLOT( animateClick() ) ); m_dlg->cbCommand->setHistoryEditorEnabled( true ); - connect( m_dlg->cbCommand, TQT_SIGNAL(removed( const TQString&) ), TQT_SLOT(saveConfig()) ); + connect( m_dlg->cbCommand, TQ_SIGNAL(removed( const TQString&) ), TQ_SLOT(saveConfig()) ); // Advanced group box... - connect(m_dlg->cbPriority, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChangeScheduler(bool))); - connect(m_dlg->slPriority, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotPriority(int))); - connect(m_dlg->cbRealtime, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotRealtime(bool))); - connect(m_dlg->cbAppcomplete, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotAppcompleteToggled(bool))); - connect(m_dlg->cbAutocomplete, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotAutocompleteToggled(bool))); - connect(m_dlg->cbAutohistory, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotAutohistoryToggled(bool))); - connect(m_dlg->cbRunAsOther, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotChangeUid(bool))); - connect(m_dlg->leUsername, TQT_SIGNAL(lostFocus()), TQT_SLOT(updateAuthLabel())); - connect(m_dlg->cbRunInTerminal, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotTerminal(bool))); + connect(m_dlg->cbPriority, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotChangeScheduler(bool))); + connect(m_dlg->slPriority, TQ_SIGNAL(valueChanged(int)), TQ_SLOT(slotPriority(int))); + connect(m_dlg->cbRealtime, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotRealtime(bool))); + connect(m_dlg->cbAppcomplete, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotAppcompleteToggled(bool))); + connect(m_dlg->cbAutocomplete, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotAutocompleteToggled(bool))); + connect(m_dlg->cbAutohistory, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotAutohistoryToggled(bool))); + connect(m_dlg->cbRunAsOther, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotChangeUid(bool))); + connect(m_dlg->leUsername, TQ_SIGNAL(lostFocus()), TQ_SLOT(updateAuthLabel())); + connect(m_dlg->cbRunInTerminal, TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotTerminal(bool))); m_dlg->slPriority->setValue(50); @@ -317,8 +317,8 @@ void Minicli::accept() if ( logout ) { - kapp->propagateSessionManager(); - kapp->requestShutDown(); + tdeApp->propagateSessionManager(); + tdeApp->requestShutDown(); } if ( lock ) { @@ -326,7 +326,7 @@ void Minicli::accept() int kicker_screen_number = tqt_xscreen(); if ( kicker_screen_number ) appname.sprintf("kdesktop-screen-%d", kicker_screen_number); - kapp->dcopClient()->send(appname, "KScreensaverIface", "lock()", TQString("")); + tdeApp->dcopClient()->send(appname, "KScreensaverIface", "lock()", TQString("")); } } @@ -375,7 +375,7 @@ void Minicli::reset() void Minicli::keyPressEvent( TQKeyEvent* e ) { - if ( e->key() == Qt::Key_Escape ) + if ( e->key() == TQt::Key_Escape ) { e->accept(); m_dlg->pbCancel->animateClick(); @@ -437,7 +437,7 @@ int Minicli::runCommand() kdDebug (1207) << "Use terminal ? " << useTerminal << endl; - if (!kapp->authorize("shell_access")) + if (!tdeApp->authorize("shell_access")) useTerminal = false; if( needsTDEsu() ) @@ -585,7 +585,7 @@ int Minicli::runCommand() // fall-through to shell case case KURIFilterData::SHELL: { - if (kapp->authorize("shell_access")) + if (tdeApp->authorize("shell_access")) { exec = cmd; @@ -651,7 +651,7 @@ void Minicli::notifyServiceStarted(KService::Ptr service) TQDataStream stream(params, IO_WriteOnly); stream << "minicli" << service->storageId(); kdDebug() << "minicli appLauncher dcop signal: " << service->storageId() << endl; - TDEApplication::kApplication()->dcopClient()->emitDCOPSignal("appLauncher", + tdeApp->dcopClient()->emitDCOPSignal("appLauncher", "serviceStartedByStorageId(TQString,TQString)", params); } @@ -877,7 +877,7 @@ void Minicli::setIcon () { TQBitmap mask = *icon.mask(); bitBlt( &mask, x, y, - overlay.mask() ? TQT_TQPIXMAP(const_cast<TQBitmap *>(overlay.mask())) : &overlay, + overlay.mask() ? const_cast<TQBitmap *>(overlay.mask()) : &overlay, 0, 0, overlay.width(), overlay.height(), overlay.mask() ? OrROP : SetROP ); icon.setMask(mask); diff --git a/kdesktop/minicli.h b/kdesktop/minicli.h index 9d92825c7..c3974a13b 100644 --- a/kdesktop/minicli.h +++ b/kdesktop/minicli.h @@ -46,7 +46,7 @@ class KURIFilterData; class Minicli : public KDialog { - Q_OBJECT + TQ_OBJECT public: Minicli( TQWidget *parent=0, const char *name=0 ); diff --git a/kdesktop/pics/ksslogo.png b/kdesktop/pics/ksslogo.png Binary files differindex 466215dee..db984eedf 100644..100755 --- a/kdesktop/pics/ksslogo.png +++ b/kdesktop/pics/ksslogo.png diff --git a/kdesktop/pics/splash.png b/kdesktop/pics/splash.png Binary files differindex 1d5738697..52d76596f 100644..100755 --- a/kdesktop/pics/splash.png +++ b/kdesktop/pics/splash.png diff --git a/kdesktop/pixmapserver.cpp b/kdesktop/pixmapserver.cpp index 56224f37a..b60942277 100644 --- a/kdesktop/pixmapserver.cpp +++ b/kdesktop/pixmapserver.cpp @@ -39,7 +39,7 @@ KPixmapServer::KPixmapServer() : TQWidget(0L, "shpixmap comm window") { - kapp->installX11EventFilter(this); + tdeApp->installX11EventFilter(this); pixmap = XInternAtom(tqt_xdisplay(), "PIXMAP", false); } diff --git a/kdesktop/pixmapserver.h b/kdesktop/pixmapserver.h index a0eadcdd6..661d531ad 100644 --- a/kdesktop/pixmapserver.h +++ b/kdesktop/pixmapserver.h @@ -24,7 +24,7 @@ struct KPixmapInode { - Qt::HANDLE handle; + TQt::HANDLE handle; Atom selection; }; @@ -37,7 +37,7 @@ struct KPixmapData struct TDESelectionInode { - Qt::HANDLE handle; + TQt::HANDLE handle; TQString name; }; @@ -50,7 +50,7 @@ struct TDESelectionInode */ class KPixmapServer: public TQWidget { - Q_OBJECT + TQ_OBJECT public: KPixmapServer(); diff --git a/kdesktop/startupid.cpp b/kdesktop/startupid.cpp index 4027b7e9a..2aeac904a 100644 --- a/kdesktop/startupid.cpp +++ b/kdesktop/startupid.cpp @@ -54,18 +54,18 @@ StartupId::StartupId( TQWidget* parent, const char* name ) XWindowAttributes attrs; XGetWindowAttributes( tqt_xdisplay(), tqt_xrootwin(), &attrs); XSelectInput( tqt_xdisplay(), tqt_xrootwin(), attrs.your_event_mask | SubstructureNotifyMask); - kapp->installX11EventFilter( this ); + tdeApp->installX11EventFilter( this ); } - connect( &update_timer, TQT_SIGNAL( timeout()), TQT_SLOT( update_startupid())); + connect( &update_timer, TQ_SIGNAL( timeout()), TQ_SLOT( update_startupid())); connect( &startup_info, - TQT_SIGNAL( gotNewStartup( const TDEStartupInfoId&, const TDEStartupInfoData& )), - TQT_SLOT( gotNewStartup( const TDEStartupInfoId&, const TDEStartupInfoData& ))); + TQ_SIGNAL( gotNewStartup( const TDEStartupInfoId&, const TDEStartupInfoData& )), + TQ_SLOT( gotNewStartup( const TDEStartupInfoId&, const TDEStartupInfoData& ))); connect( &startup_info, - TQT_SIGNAL( gotStartupChange( const TDEStartupInfoId&, const TDEStartupInfoData& )), - TQT_SLOT( gotStartupChange( const TDEStartupInfoId&, const TDEStartupInfoData& ))); + TQ_SIGNAL( gotStartupChange( const TDEStartupInfoId&, const TDEStartupInfoData& )), + TQ_SLOT( gotStartupChange( const TDEStartupInfoId&, const TDEStartupInfoData& ))); connect( &startup_info, - TQT_SIGNAL( gotRemoveStartup( const TDEStartupInfoId&, const TDEStartupInfoData& )), - TQT_SLOT( gotRemoveStartup( const TDEStartupInfoId& ))); + TQ_SIGNAL( gotRemoveStartup( const TDEStartupInfoId&, const TDEStartupInfoData& )), + TQ_SLOT( gotRemoveStartup( const TDEStartupInfoId& ))); } StartupId::~StartupId() @@ -129,10 +129,10 @@ bool StartupId::x11Event( XEvent* e ) if( startups.count() == 0 ) start_startupid( KDE_STARTUP_ICON ); // 60(?) sec timeout - shouldn't be hopefully needed anyway, ksmserver should have it too - TQTimer::singleShot( 60000, this, TQT_SLOT( finishKDEStartup())); + TQTimer::singleShot( 60000, this, TQ_SLOT( finishKDEStartup())); } else if( strcmp( s, "session ready" ) == 0 && kde_startup_status < StartupDone ) - TQTimer::singleShot( 2000, this, TQT_SLOT( finishKDEStartup())); + TQTimer::singleShot( 2000, this, TQ_SLOT( finishKDEStartup())); } return false; } @@ -140,7 +140,7 @@ bool StartupId::x11Event( XEvent* e ) void StartupId::finishKDEStartup() { kde_startup_status = StartupDone; - kapp->removeX11EventFilter( this ); + tdeApp->removeX11EventFilter( this ); if( startups.count() == 0 ) stop_startupid(); } @@ -176,7 +176,7 @@ void StartupId::start_startupid( const TQString& icon_P ) { const TQColor startup_colors[ StartupId::NUM_BLINKING_PIXMAPS ] - = { Qt::black, Qt::darkGray, Qt::lightGray, Qt::white, Qt::white }; + = { TQt::black, TQt::darkGray, TQt::lightGray, TQt::white, TQt::white }; TQPixmap icon_pixmap = TDEGlobal::iconLoader()->loadIcon( icon_P, TDEIcon::Small, 0, diff --git a/kdesktop/startupid.h b/kdesktop/startupid.h index 893d0b8db..27345d598 100644 --- a/kdesktop/startupid.h +++ b/kdesktop/startupid.h @@ -34,7 +34,7 @@ class TQStyle; class StartupId : public TQWidget { - Q_OBJECT + TQ_OBJECT public: StartupId( TQWidget* parent = 0, const char* name = 0 ); virtual ~StartupId(); diff --git a/kdesktop/tdefileividesktop.cpp b/kdesktop/tdefileividesktop.cpp index bf9aa074c..464b5490d 100644 --- a/kdesktop/tdefileividesktop.cpp +++ b/kdesktop/tdefileividesktop.cpp @@ -144,10 +144,10 @@ void KFileIVIDesktop::drawShadowedText( TQPainter *p, const TQColorGroup &cg ) int textX; if (drawRoundedRect == true) - textX = textRect( FALSE ).x() + 4; + textX = textRect( false ).x() + 4; else - textX = textRect( FALSE ).x() + 2; - int textY = textRect( FALSE ).y(); + textX = textRect( false ).x() + 2; + int textY = textRect( false ).y(); int align = ((TDEIconView *) iconView())->itemTextPos() == TQIconView::Bottom ? AlignHCenter : AlignAuto; // FIXME @@ -222,11 +222,11 @@ TQImage *KFileIVIDesktop::buildShadow( TQPainter *p, const int align, TQPainter pixPainter; int spread = shadowThickness(); - TQPixmap textPixmap(textRect( FALSE ).width() + spread * 2 + 2, - textRect( FALSE ).height() + spread * 2 + 2); + TQPixmap textPixmap(textRect( false ).width() + spread * 2 + 2, + textRect( false ).height() + spread * 2 + 2); textPixmap.fill(TQColor(0,0,0)); - textPixmap.setMask( textPixmap.createHeuristicMask(TRUE) ); + textPixmap.setMask( textPixmap.createHeuristicMask(true) ); pixPainter.begin(&textPixmap); pixPainter.setPen(white); // get the pen from the root painter diff --git a/kdesktop/tdefileividesktop.h b/kdesktop/tdefileividesktop.h index 46f77f636..0434a706e 100644 --- a/kdesktop/tdefileividesktop.h +++ b/kdesktop/tdefileividesktop.h @@ -33,7 +33,7 @@ /* * The dither flags used to display the shadow image */ -#define DITHER_FLAGS (Qt::DiffuseAlphaDither | Qt::ColorOnly | Qt::AvoidDither) +#define DITHER_FLAGS (TQt::DiffuseAlphaDither | TQt::ColorOnly | TQt::AvoidDither) class TQFont; diff --git a/kdesktop/xautolock.cpp b/kdesktop/xautolock.cpp index 3c7e62670..95de8f3d6 100644 --- a/kdesktop/xautolock.cpp +++ b/kdesktop/xautolock.cpp @@ -71,7 +71,7 @@ XAutoLock::XAutoLock() #endif if( !xautolock_useXidle && !xautolock_useMit ) { - kapp->installX11EventFilter( this ); + tdeApp->installX11EventFilter( this ); int (*oldHandler)(Display *, XErrorEvent *); oldHandler = XSetErrorHandler(catchFalseAlarms); XSync(tqt_xdisplay(), False ); diff --git a/kdesktop/xautolock.h b/kdesktop/xautolock.h index 5684ce6ef..a30405339 100644 --- a/kdesktop/xautolock.h +++ b/kdesktop/xautolock.h @@ -19,7 +19,7 @@ // class XAutoLock : public TQWidget { - Q_OBJECT + TQ_OBJECT public: XAutoLock(); ~XAutoLock(); |