summaryrefslogtreecommitdiffstats
path: root/examples/widgets/mainwindows/mdi/mdichild.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-07-15 13:12:24 +0200
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2015-07-20 22:07:13 +0000
commitbdbd26a3b73b718b54eb9ffb2ebf687924ed6e6d (patch)
tree5235cd2e316cb4e62e1772f9bcf156ec9a09068b /examples/widgets/mainwindows/mdi/mdichild.cpp
parentc4a97def7b68586bf6067f4e197fb715c2136ecb (diff)
Polish the widgets/mainwindows/mdi example.
- Introduce Qt 5 signals & slot syntax and remove the QSignalMapper used to map the triggered() signals of the per-MDI-child actions of the window menu to the activation slot by a functor to demonstrate the flexibility of the new connection syntax (the functor can in turn be replaced by a lambda expression once we have C++ 11). - Merge MainWindow::createMenus()/createQToolBars() into MainWindow::createActions(), removing the need to store the actions as member variables. Use QMenu::addAction() for brevity. - Use QIcon::fromTheme() to obtain system icons and use resource icons as fallback. - Rewrite settings code to use QWidget::saveGeometry(), Widget::restoreGeometry() since saving size and position does not work well with multiple screens. Query the available size when determining the initial size instead of using hard-coded values for High-DPI screens. - Fix minor issues in code, use multi-argument version of QString::arg(), QDir::toNativeSeparators() to present file paths to the user and static method invocation. Change-Id: I3d5078ddbe3cb4eba65e188430ba3580cecb2c79 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'examples/widgets/mainwindows/mdi/mdichild.cpp')
-rw-r--r--examples/widgets/mainwindows/mdi/mdichild.cpp39
1 files changed, 21 insertions, 18 deletions
diff --git a/examples/widgets/mainwindows/mdi/mdichild.cpp b/examples/widgets/mainwindows/mdi/mdichild.cpp
index 242e8248a2..73364eb3ee 100644
--- a/examples/widgets/mainwindows/mdi/mdichild.cpp
+++ b/examples/widgets/mainwindows/mdi/mdichild.cpp
@@ -56,8 +56,8 @@ void MdiChild::newFile()
curFile = tr("document%1.txt").arg(sequenceNumber++);
setWindowTitle(curFile + "[*]");
- connect(document(), SIGNAL(contentsChanged()),
- this, SLOT(documentWasModified()));
+ connect(document(), &QTextDocument::contentsChanged,
+ this, &MdiChild::documentWasModified);
}
bool MdiChild::loadFile(const QString &fileName)
@@ -78,8 +78,8 @@ bool MdiChild::loadFile(const QString &fileName)
setCurrentFile(fileName);
- connect(document(), SIGNAL(contentsChanged()),
- this, SLOT(documentWasModified()));
+ connect(document(), &QTextDocument::contentsChanged,
+ this, &MdiChild::documentWasModified);
return true;
}
@@ -109,8 +109,7 @@ bool MdiChild::saveFile(const QString &fileName)
if (!file.open(QFile::WriteOnly | QFile::Text)) {
QMessageBox::warning(this, tr("MDI"),
tr("Cannot write file %1:\n%2.")
- .arg(fileName)
- .arg(file.errorString()));
+ .arg(QDir::toNativeSeparators(fileName), file.errorString()));
return false;
}
@@ -144,18 +143,22 @@ void MdiChild::documentWasModified()
bool MdiChild::maybeSave()
{
- if (document()->isModified()) {
- QMessageBox::StandardButton ret;
- ret = QMessageBox::warning(this, tr("MDI"),
- tr("'%1' has been modified.\n"
- "Do you want to save your changes?")
- .arg(userFriendlyCurrentFile()),
- QMessageBox::Save | QMessageBox::Discard
- | QMessageBox::Cancel);
- if (ret == QMessageBox::Save)
- return save();
- else if (ret == QMessageBox::Cancel)
- return false;
+ if (!document()->isModified())
+ return true;
+ const QMessageBox::StandardButton ret
+ = QMessageBox::warning(this, tr("MDI"),
+ tr("'%1' has been modified.\n"
+ "Do you want to save your changes?")
+ .arg(userFriendlyCurrentFile()),
+ QMessageBox::Save | QMessageBox::Discard
+ | QMessageBox::Cancel);
+ switch (ret) {
+ case QMessageBox::Save:
+ return save();
+ case QMessageBox::Cancel:
+ return false;
+ default:
+ break;
}
return true;
}