summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2016-03-17 16:02:44 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2016-03-17 16:02:45 +0100
commit6380cc710e4fdc0299966ff817f8cb34ace7870c (patch)
tree3461e7708f169c6acb1b6d3e02d1838a0609fc66 /examples
parent35dce99b5664e47b2210c2dfe36300376e837f1d (diff)
parentd0cdc7ad1e2728caf363abf328b2ad81f2ed5a5b (diff)
Merge remote-tracking branch 'origin/5.6.0' into 5.6
Diffstat (limited to 'examples')
-rw-r--r--examples/widgets/mainwindows/application/mainwindow.cpp16
-rw-r--r--examples/widgets/mainwindows/application/mainwindow.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/examples/widgets/mainwindows/application/mainwindow.cpp b/examples/widgets/mainwindows/application/mainwindow.cpp
index 86dfae166f..861b908189 100644
--- a/examples/widgets/mainwindows/application/mainwindow.cpp
+++ b/examples/widgets/mainwindows/application/mainwindow.cpp
@@ -59,6 +59,10 @@ MainWindow::MainWindow()
connect(textEdit->document(), &QTextDocument::contentsChanged,
this, &MainWindow::documentWasModified);
+ QGuiApplication::setFallbackSessionManagementEnabled(false);
+ connect(qApp, &QGuiApplication::commitDataRequest,
+ this, &MainWindow::commitData);
+
setCurrentFile(QString());
setUnifiedTitleAndToolBarOnMac(true);
}
@@ -383,3 +387,15 @@ QString MainWindow::strippedName(const QString &fullFileName)
return QFileInfo(fullFileName).fileName();
}
//! [49]
+
+void MainWindow::commitData(QSessionManager &manager)
+{
+ if (manager.allowsInteraction()) {
+ if (!maybeSave())
+ manager.cancel();
+ } else {
+ // Non-interactive: save without asking
+ if (textEdit->document()->isModified())
+ save();
+ }
+}
diff --git a/examples/widgets/mainwindows/application/mainwindow.h b/examples/widgets/mainwindows/application/mainwindow.h
index 08b4aa17f5..9712604125 100644
--- a/examples/widgets/mainwindows/application/mainwindow.h
+++ b/examples/widgets/mainwindows/application/mainwindow.h
@@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE
class QAction;
class QMenu;
class QPlainTextEdit;
+class QSessionManager;
QT_END_NAMESPACE
//! [0]
@@ -69,6 +70,7 @@ private slots:
bool saveAs();
void about();
void documentWasModified();
+ void commitData(QSessionManager &);
private:
void createActions();