From 8f2519660b2f8a00492928d3fdb07f0a47ba6934 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 24 Sep 2014 16:15:14 +0200 Subject: Polish the mdi example. Add a command line parser to be able to pass on files. Task-number: QTBUG-35146 Change-Id: I32cbb9ec1e87667076e40a81c66674cf16836b54 Reviewed-by: Marc Mutz --- examples/widgets/mainwindows/mdi/main.cpp | 12 ++++++++++++ examples/widgets/mainwindows/mdi/mainwindow.cpp | 18 ++++++++++++------ examples/widgets/mainwindows/mdi/mainwindow.h | 2 ++ 3 files changed, 26 insertions(+), 6 deletions(-) (limited to 'examples/widgets/mainwindows') diff --git a/examples/widgets/mainwindows/mdi/main.cpp b/examples/widgets/mainwindows/mdi/main.cpp index ab5f9b1480..d454f52e28 100644 --- a/examples/widgets/mainwindows/mdi/main.cpp +++ b/examples/widgets/mainwindows/mdi/main.cpp @@ -39,6 +39,8 @@ ****************************************************************************/ #include +#include +#include #include "mainwindow.h" @@ -47,7 +49,17 @@ int main(int argc, char *argv[]) Q_INIT_RESOURCE(mdi); QApplication app(argc, argv); + QCoreApplication::setApplicationVersion(QT_VERSION_STR); + QCommandLineParser parser; + parser.setApplicationDescription("Qt MDI Example"); + parser.addHelpOption(); + parser.addVersionOption(); + parser.addPositionalArgument("file", "The file to open."); + parser.process(app); + MainWindow mainWin; + foreach (const QString &fileName, parser.positionalArguments()) + mainWin.openFile(fileName); mainWin.show(); return app.exec(); } diff --git a/examples/widgets/mainwindows/mdi/mainwindow.cpp b/examples/widgets/mainwindows/mdi/mainwindow.cpp index ab61dd6561..d58a47e669 100644 --- a/examples/widgets/mainwindows/mdi/mainwindow.cpp +++ b/examples/widgets/mainwindows/mdi/mainwindow.cpp @@ -95,16 +95,22 @@ void MainWindow::open() return; } - MdiChild *child = createMdiChild(); - if (child->loadFile(fileName)) { + if (openFile(fileName)) statusBar()->showMessage(tr("File loaded"), 2000); - child->show(); - } else { - child->close(); - } } } +bool MainWindow::openFile(const QString &fileName) +{ + MdiChild *child = createMdiChild(); + const bool succeeded = child->loadFile(fileName); + if (succeeded) + child->show(); + else + child->close(); + return succeeded; +} + void MainWindow::save() { if (activeMdiChild() && activeMdiChild()->save()) diff --git a/examples/widgets/mainwindows/mdi/mainwindow.h b/examples/widgets/mainwindows/mdi/mainwindow.h index b24cdd4db1..ef86c68602 100644 --- a/examples/widgets/mainwindows/mdi/mainwindow.h +++ b/examples/widgets/mainwindows/mdi/mainwindow.h @@ -59,6 +59,8 @@ class MainWindow : public QMainWindow public: MainWindow(); + bool openFile(const QString &fileName); + protected: void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE; -- cgit v1.2.3