summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qguiapplication.cpp2
-rw-r--r--src/gui/kernel/qguiapplication.h3
-rw-r--r--src/gui/kernel/qplatformsessionmanager.cpp23
-rw-r--r--src/gui/kernel/qplatformsessionmanager.h15
-rw-r--r--src/gui/kernel/qsessionmanager.cpp3
5 files changed, 42 insertions, 4 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 882eefb60e..7f258331d3 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -1162,9 +1162,9 @@ void QGuiApplicationPrivate::init()
init_plugins(pluginList);
QWindowSystemInterface::flushWindowSystemEvents();
+#ifndef QT_NO_SESSIONMANAGER
Q_Q(QGuiApplication);
-#ifndef QT_NO_SESSIONMANAGER
// connect to the session manager
session_manager = new QSessionManager(q, session_id, session_key);
#endif
diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h
index a0aef83eed..bd42f18418 100644
--- a/src/gui/kernel/qguiapplication.h
+++ b/src/gui/kernel/qguiapplication.h
@@ -184,6 +184,9 @@ private:
#endif
friend class QFontDatabasePrivate;
friend class QPlatformIntegration;
+#ifndef QT_NO_SESSIONMANAGER
+ friend class QPlatformSessionManager;
+#endif
};
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qplatformsessionmanager.cpp b/src/gui/kernel/qplatformsessionmanager.cpp
index 6eb88a9450..97c40d863c 100644
--- a/src/gui/kernel/qplatformsessionmanager.cpp
+++ b/src/gui/kernel/qplatformsessionmanager.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 Samuel Gaist <samuel.gaist@edeltech.ch>
+** Copyright (C) 2013 Teo Mrnjavac <teo@kde.org>
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
@@ -42,6 +43,10 @@
#include "qplatformsessionmanager.h"
+#include "qguiapplication_p.h"
+
+#ifndef QT_NO_SESSIONMANAGER
+
QT_BEGIN_NAMESPACE
QPlatformSessionManager::QPlatformSessionManager(const QString &id, const QString &key)
@@ -113,6 +118,12 @@ QStringList QPlatformSessionManager::discardCommand() const
return m_discardCommand;
}
+void QPlatformSessionManager::setManagerProperty(const QString &name, const QString &value)
+{
+ Q_UNUSED(name)
+ Q_UNUSED(value)
+}
+
void QPlatformSessionManager::setManagerProperty(const QString &name, const QStringList &value)
{
Q_UNUSED(name)
@@ -128,4 +139,16 @@ void QPlatformSessionManager::requestPhase2()
{
}
+void QPlatformSessionManager::appCommitData()
+{
+ qGuiApp->d_func()->commitData();
+}
+
+void QPlatformSessionManager::appSaveState()
+{
+ qGuiApp->d_func()->saveState();
+}
+
QT_END_NAMESPACE
+
+#endif // QT_NO_SESSIONMANAGER
diff --git a/src/gui/kernel/qplatformsessionmanager.h b/src/gui/kernel/qplatformsessionmanager.h
index 0389a7b076..23b7a62436 100644
--- a/src/gui/kernel/qplatformsessionmanager.h
+++ b/src/gui/kernel/qplatformsessionmanager.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 Samuel Gaist <samuel.gaist@edeltech.ch>
+** Copyright (C) 2013 Teo Mrnjavac <teo@kde.org>
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
@@ -57,6 +58,8 @@
#include <QtGui/qsessionmanager.h>
+#ifndef QT_NO_SESSIONMANAGER
+
QT_BEGIN_NAMESPACE
class Q_GUI_EXPORT QPlatformSessionManager
@@ -82,16 +85,22 @@ public:
virtual void setDiscardCommand(const QStringList &command);
virtual QStringList discardCommand() const;
+ virtual void setManagerProperty(const QString &name, const QString &value);
virtual void setManagerProperty(const QString &name, const QStringList &value);
virtual bool isPhase2() const;
virtual void requestPhase2();
+protected:
+ virtual void appCommitData();
+ virtual void appSaveState();
+
+ QString m_sessionId;
+ QString m_sessionKey;
+
private:
QStringList m_restartCommand;
QStringList m_discardCommand;
- const QString m_sessionId;
- const QString m_sessionKey;
QSessionManager::RestartHint m_restartHint;
Q_DISABLE_COPY(QPlatformSessionManager)
@@ -99,4 +108,6 @@ private:
QT_END_NAMESPACE
+#endif // QT_NO_SESSIONMANAGER
+
#endif // QPLATFORMSESSIONMANAGER_H
diff --git a/src/gui/kernel/qsessionmanager.cpp b/src/gui/kernel/qsessionmanager.cpp
index 8ac3c24a8f..8cc8d3d961 100644
--- a/src/gui/kernel/qsessionmanager.cpp
+++ b/src/gui/kernel/qsessionmanager.cpp
@@ -365,7 +365,8 @@ QStringList QSessionManager::discardCommand() const
void QSessionManager::setManagerProperty(const QString &name,
const QString &value)
{
- setManagerProperty(name, QStringList(value));
+ Q_D(QSessionManager);
+ d->platformSessionManager->setManagerProperty(name, value);
}
/*!