1 //=========================================== 2 // Lumina-desktop source code 3 // Copyright (c) 2012-2017, Ken Moore 4 // Available under the 3-clause BSD license 5 // See the LICENSE file for full details 6 //=========================================== 7 #ifndef _LUMINA_DESKTOP_SESSION_H 8 #define _LUMINA_DESKTOP_SESSION_H 9 10 #include <global-includes.h> 11 12 class LSession : public LSingleApplication{ 13 Q_OBJECT 14 public: 15 LSession(int &argc, char **argv); 16 ~LSession(); 17 instance()18 static LSession* instance(){ 19 return ( static_cast<LSession*>(QApplication::instance()) ); 20 } 21 private: 22 void CleanupSession(); 23 void setupGlobalConnections(); 24 25 int VersionStringToNumber(QString version); 26 QMediaPlayer *mediaObj; 27 void playAudioFile(QString filepath); 28 29 QTranslator *currTranslator; 30 31 //Extra background threads for individual objects 32 33 34 public slots: 35 void setupSession(); //called during startup only 36 37 //Slots for public access/usage 38 void StartLogout(); 39 void StartShutdown(bool skipupdates = false); 40 void StartReboot(bool skipupdates = false); 41 void LaunchApplication(QString exec); 42 void LaunchDesktopApplication(QString app, QString action = ""); 43 void LaunchStandardApplication(QString app, QStringList args = QStringList()); 44 45 void reloadIconTheme(); //will emit the IconThemeChanged signal when ready 46 void switchLocale(QString localeCode); //will emit the LocaleChanged signal when ready 47 48 private slots: 49 void NewCommunication(QStringList); 50 void launchStartupApps(); //used during initialization 51 52 //Internal simplification functions 53 void checkUserFiles(); 54 55 signals: 56 //General Signals 57 void LocaleChanged(); 58 void IconThemeChanged(); 59 60 }; 61 62 #endif 63