diff options
author | Samuel Gaist <samuel.gaist@edeltech.ch> | 2013-08-20 18:14:48 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-04 00:05:12 +0200 |
commit | 85fc95f346a33173cea107f799cbcff2b92f6dfb (patch) | |
tree | ae32f6b2ed881d1f9488c31a0cef69839b29ca3d /src/gui/kernel/qguiapplication.cpp | |
parent | a871f224f86e51b3d009374a1a5aa1cf70bfa66e (diff) |
Add QPA session manager
The QSessionManager doesn't allow customization in platform independent
way. The new QPlatformSessionManager aims to change that. Now the
QSessionManagerPrivate has a new QPlatformSessionManager member to
forward all the calls to QSessionManager's functions. If no platform
manager is present, the current behavior is used.
QPlatformSessionManager mimics the current QSessionManager behavior.
A new factory function has been added to QPlatformIntegration to return
a QPlatformSessionManager
Task-number: QTBUG-28228
Change-Id: Ida7ac16a8f5303df5014fcb67878170ebdb37203
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 4c2adef6de..1186cc2905 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1068,7 +1068,10 @@ void QGuiApplicationPrivate::init() bool doGrabUnderDebugger = false; QList<QByteArray> pluginList; // Get command line params - +#ifndef QT_NO_SESSIONMANAGER + QString session_id; + QString session_key; +#endif int j = argc ? 1 : 0; for (int i=1; i<argc; i++) { if (argv[i] && *argv[i] != '-') { @@ -2767,13 +2770,13 @@ bool QGuiApplication::isSessionRestored() const QString QGuiApplication::sessionId() const { Q_D(const QGuiApplication); - return d->session_id; + return d->session_manager->sessionId(); } QString QGuiApplication::sessionKey() const { Q_D(const QGuiApplication); - return d->session_key; + return d->session_manager->sessionKey(); } bool QGuiApplication::isSavingSession() const @@ -2782,12 +2785,12 @@ bool QGuiApplication::isSavingSession() const return d->is_saving_session; } -void QGuiApplicationPrivate::commitData(QSessionManager& manager) +void QGuiApplicationPrivate::commitData() { Q_Q(QGuiApplication); is_saving_session = true; - emit q->commitDataRequest(manager); - if (manager.allowsInteraction()) { + emit q->commitDataRequest(*session_manager); + if (session_manager->allowsInteraction()) { QWindowList done; QWindowList list = QGuiApplication::topLevelWindows(); bool cancelled = false; @@ -2802,17 +2805,17 @@ void QGuiApplicationPrivate::commitData(QSessionManager& manager) } } if (cancelled) - manager.cancel(); + session_manager->cancel(); } is_saving_session = false; } -void QGuiApplicationPrivate::saveState(QSessionManager &manager) +void QGuiApplicationPrivate::saveState() { Q_Q(QGuiApplication); is_saving_session = true; - emit q->saveStateRequest(manager); + emit q->saveStateRequest(*session_manager); is_saving_session = false; } #endif //QT_NO_SESSIONMANAGER |