diff options
author | Mavridis Philippe <[email protected]> | 2024-06-09 22:04:25 +0300 |
---|---|---|
committer | Mavridis Philippe <[email protected]> | 2024-08-01 13:00:28 +0300 |
commit | d88718ee027e329565d2d97c5cadde4aa1b83166 (patch) | |
tree | a4a471e94c5afcf4d5540961c94df707a707bd24 /ksmserver/server.h | |
parent | 352d2ee3da00e402c4d362ab90a031df76d617ad (diff) | |
download | tdebase-d88718ee027e329565d2d97c5cadde4aa1b83166.tar.gz tdebase-d88718ee027e329565d2d97c5cadde4aa1b83166.zip |
KSMServer: improve suspend code
1. Some code deduplication. Suspending is now handled via the public method `suspend(int)` which is DCOP-accessible and maps SuspendType values to corresponding TDEHWLib TDESystemPowerState values, and the internal method `suspendInternal(int)` which performs the chosen suspend and optionally locks the screen beforehand.
2. Options are now read from power-managerrc on startup and stored in memory to avoid reading the configuration file every time a suspend is requested.
3. SuspendType is now a member of KSMServer class (instead of KSMShutdownDlg)
4. A new DCOP-accessible method `suspendOptions()` returns a TQStringList of all available suspend options.
Signed-off-by: Mavridis Philippe <[email protected]>
Diffstat (limited to 'ksmserver/server.h')
-rw-r--r-- | ksmserver/server.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/ksmserver/server.h b/ksmserver/server.h index fdf08cded..511013dc7 100644 --- a/ksmserver/server.h +++ b/ksmserver/server.h @@ -37,6 +37,17 @@ class KSMListener; class KSMConnection; class KSMClient; +namespace SuspendType { + enum SuspendType { + NotSpecified = 0, + Freeze, + Standby, // not implemented + Suspend, + Hibernate, + HybridSuspend + }; +}; + enum SMType { SM_ERROR, SM_WMCOMMAND, SM_WMSAVEYOURSELF }; struct SMData { @@ -103,6 +114,7 @@ public: public slots: void cleanUp(); + void reconfigure(); private slots: void newConnection( int socket ); @@ -172,6 +184,8 @@ private: TDEApplication::ShutdownMode sdmode, TQString bootOption = TQString::null ); + void suspendInternal(int state); + void performLegacySessionSave(); void storeLegacySession( TDEConfig* config ); void restoreLegacySession( TDEConfig* config ); @@ -186,12 +200,14 @@ private: void resumeStartupInternal(); // public dcop interface - void logout( int, int, int ); - virtual void logoutTimed( int, int, TQString ); + void logout(int, int, int); + virtual void logoutTimed(int, int, TQString); + bool suspend(int); + TQStringList suspendOptions(); TQStringList sessionList(); TQString currentSession(); void saveCurrentSession(); - void saveCurrentSessionAs( TQString ); + void saveCurrentSessionAs(TQString); TQWidget* startupNotifierIPDlg; TQWidget* shutdownNotifierIPDlg; @@ -240,6 +256,10 @@ private: TDEApplication::ShutdownType pendingShutdown_sdtype; TDEApplication::ShutdownMode pendingShutdown_sdmode; + bool m_disableSuspend; + bool m_disableHibernate; + bool m_lockOnResume; + // ksplash interface void upAndRunning( const TQString& msg ); void publishProgress( int progress, bool max = false ); |