Merge pull request #195 from seezer/qt5sessions
authorManuel Nickschas <sputnick@quassel-irc.org>
Sun, 24 Apr 2016 18:39:44 +0000 (20:39 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 24 Apr 2016 18:39:44 +0000 (20:39 +0200)
Support session management with Qt5

src/qtui/qtuiapplication.cpp
src/qtui/qtuiapplication.h

index 88b8bdb..79c9e37 100644 (file)
@@ -33,7 +33,6 @@
 #include "qtui.h"
 #include "qtuisettings.h"
 
-
 QtUiApplication::QtUiApplication(int &argc, char **argv)
 #ifdef HAVE_KDE4
     : KApplication(),  // KApplication is deprecated in KF5
@@ -91,6 +90,12 @@ QtUiApplication::QtUiApplication(int &argc, char **argv)
     qInstallMsgHandler(Client::logMessage);
 #else
     qInstallMessageHandler(Client::logMessage);
+    connect(this, &QGuiApplication::commitDataRequest, this, &QtUiApplication::commitData, Qt::DirectConnection);
+    connect(this, &QGuiApplication::saveStateRequest, this, &QtUiApplication::saveState, Qt::DirectConnection);
+#endif
+
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
+    QGuiApplication::setFallbackSessionManagementEnabled(false);
 #endif
 }
 
index 567d482..514c37f 100644 (file)
@@ -50,11 +50,16 @@ public:
     virtual bool init();
 
     void resumeSessionIfPossible();
-    virtual void commitData(QSessionManager &manager);
-    virtual void saveState(QSessionManager &manager);
-
     inline bool isAboutToQuit() const { return _aboutToQuit; }
 
+#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0))
+    void commitData(QSessionManager &manager) override;
+    void saveState(QSessionManager &manager) override;
+#else
+    void commitData(QSessionManager &manager);
+    void saveState(QSessionManager &manager);
+#endif
+
 protected:
     virtual void quit();