# # # patch "src/GuitoneCore.cpp" # from [54e94d1ab775f27cf2ca1549d83a16e6abd12b20] # to [e1f324153ab0ada4abfae0ce70dee234353648e8] # # patch "src/GuitoneDriver.cpp" # from [fef38ed25b79ea194c484c3db5f638890190e3c8] # to [c34e02d541545930cfa94b66e1f0ab71665f10b7] # # patch "src/view/MainWindow.cpp" # from [df032c1059bcb67603358b68ef99b3ff71183a95] # to [e1e2577bbcce3b8beaa16dd8c855f89b62f18358] # # patch "src/view/MainWindow.h" # from [9a06be9e8a5b42f070623f2be8e753e36d9d4190] # to [5850b14a054204c17d321a87bd06ff4a35b2eea4] # # patch "src/view/dialogs/DatabaseDialogManager.cpp" # from [d3dabdbfdf461e7edbb023bbf46872e3ac6f6e0f] # to [48a2332538a87a9b068b8af053d9bee8eddd5398] # # patch "src/view/dialogs/DatabaseDialogManager.h" # from [822cbcc6842a9006192e09ab2d56b29129d055a1] # to [39dfe4f5d0a25022399e0eaf7fa45319ff84ab9c] # # patch "src/view/dialogs/DialogManager.cpp" # from [04d4ad72bce2aa4917dd49fd4840649026581c01] # to [00d41983314163980b4ab74c405dbd3d9c3b5524] # # patch "src/view/dialogs/DialogManager.h" # from [5b396cb1d3b2b3231fe2021fe884549e9a41ecc4] # to [8a3054aa20ecbfe9fa9e9d076eabbaf46a9568ab] # # patch "src/view/dialogs/WorkspaceDialogManager.cpp" # from [a07aa7f29c83306b0af77ec51f791e0966de43e6] # to [bd47881e7ff2475f0843c7219cf96a617bebd623] # # patch "src/view/dialogs/WorkspaceDialogManager.h" # from [1bbaa9095ac458a84cdd56f5cdcd49859511619a] # to [d6b72b390c5377e0e5f44a530a06495d927512d5] # ============================================================ --- src/GuitoneCore.cpp 54e94d1ab775f27cf2ca1549d83a16e6abd12b20 +++ src/GuitoneCore.cpp e1f324153ab0ada4abfae0ce70dee234353648e8 @@ -119,22 +119,7 @@ void GuitoneCore::checkForApplicationUpd { updateDialog = new ApplicationUpdate(NULL); } - - if (!updateDialog->updateAvailable()) - { - if (!silent) - { - QMessageBox::information( - NULL, - tr("No updates available"), - tr("Your version of guitone (%1) is already up-to-date.") - .arg(GUITONE_VERSION), - QMessageBox::Ok - ); - } - return; - } - updateDialog->show(); + updateDialog->checkForUpdates(silent); #endif } ============================================================ --- src/GuitoneDriver.cpp fef38ed25b79ea194c484c3db5f638890190e3c8 +++ src/GuitoneDriver.cpp c34e02d541545930cfa94b66e1f0ab71665f10b7 @@ -55,7 +55,7 @@ void GuitoneDriver::processCommands() if (path == "-") { - dialogManager = new DialogManager(NULL, true); + dialogManager = new DialogManager(NULL); } else { @@ -69,7 +69,7 @@ void GuitoneDriver::processCommands() if (fileInfo.isDir()) { - dialogManager = new WorkspaceDialogManager(NULL, true); + dialogManager = new WorkspaceDialogManager(NULL); try { path = MonotoneManager::normalizeWorkspacePath(path); @@ -84,7 +84,7 @@ void GuitoneDriver::processCommands() } else if (fileInfo.isFile()) { - dialogManager = new DatabaseDialogManager(NULL, true); + dialogManager = new DatabaseDialogManager(NULL); try { APP->manager()->getThreadForDatabase(path); @@ -103,6 +103,12 @@ void GuitoneDriver::processCommands() } } + // if all dialogs have been closed, quit the event loop and exit + connect( + dialogManager, SIGNAL(allDialogsClosed()), + APP, SLOT(quit()) + ); + QString reqMethod = args.takeFirst(); const QMetaObject * obj = dialogManager->metaObject(); @@ -157,7 +163,6 @@ void GuitoneDriver::processCommands() genArgs[0], genArgs[1], genArgs[2], genArgs[3], genArgs[4], genArgs[5], genArgs[6], genArgs[7], genArgs[8], genArgs[9]); - quit(); } void GuitoneDriver::error(const QString & msg) ============================================================ --- src/view/MainWindow.cpp df032c1059bcb67603358b68ef99b3ff71183a95 +++ src/view/MainWindow.cpp e1e2577bbcce3b8beaa16dd8c855f89b62f18358 @@ -49,6 +49,11 @@ void MainWindow::init() } connect( + dialogManager, SIGNAL(allDialogsClosed()), + this, SLOT(allDialogsClosed()) + ); + + connect( menuBar, SIGNAL(showAbout()), dialogManager, SLOT(showAbout()) ); @@ -125,3 +130,8 @@ void MainWindow::closeEvent(QCloseEvent emit windowClosed(this); } +void MainWindow::allDialogsClosed() +{ + raise(); + activateWindow(); +} ============================================================ --- src/view/MainWindow.h 9a06be9e8a5b42f070623f2be8e753e36d9d4190 +++ src/view/MainWindow.h 5850b14a054204c17d321a87bd06ff4a35b2eea4 @@ -42,6 +42,9 @@ private: private: void closeEvent(QCloseEvent *); + +private slots: + void allDialogsClosed(); }; #endif ============================================================ --- src/view/dialogs/DatabaseDialogManager.cpp d3dabdbfdf461e7edbb023bbf46872e3ac6f6e0f +++ src/view/dialogs/DatabaseDialogManager.cpp 48a2332538a87a9b068b8af053d9bee8eddd5398 @@ -19,8 +19,8 @@ #include "DatabaseDialogManager.h" #include "vocab.h" -DatabaseDialogManager::DatabaseDialogManager(QWidget * parent, bool blockDialogs) - : DialogManager(parent, blockDialogs), changesetBrowser(0), +DatabaseDialogManager::DatabaseDialogManager(QWidget * parent) + : DialogManager(parent), changesetBrowser(0), checkoutRevision(0), fileDiff(0), fileHistory(0), generateKeypair(0), keyManagement(0), revisionDiff(0), revisionManifest(0), selectRevision(0) {} ============================================================ --- src/view/dialogs/DatabaseDialogManager.h 822cbcc6842a9006192e09ab2d56b29129d055a1 +++ src/view/dialogs/DatabaseDialogManager.h 39dfe4f5d0a25022399e0eaf7fa45319ff84ab9c @@ -34,7 +34,7 @@ public: { Q_OBJECT public: - DatabaseDialogManager(QWidget *, bool blockDialogs = false); + DatabaseDialogManager(QWidget *); ~DatabaseDialogManager(); //! delegated signals ============================================================ --- src/view/dialogs/DialogManager.cpp 04d4ad72bce2aa4917dd49fd4840649026581c01 +++ src/view/dialogs/DialogManager.cpp 00d41983314163980b4ab74c405dbd3d9c3b5524 @@ -19,8 +19,8 @@ #include "DialogManager.h" #include "vocab.h" -DialogManager::DialogManager(QWidget * parentWidget, bool blockDialogs) - : QObject(parentWidget), about(0), preferences(0), blockDialogs(blockDialogs) +DialogManager::DialogManager(QWidget * parentWidget) + : QObject(parentWidget), about(0), preferences(0) {} DialogManager::~DialogManager() @@ -38,6 +38,7 @@ void DialogManager::closeAllDialogs() { if (about) about->close(); if (preferences) preferences->close(); + emit allDialogsClosed(); } void DialogManager::showAbout() @@ -60,14 +61,6 @@ void DialogManager::showDialog(Dialog * void DialogManager::showDialog(Dialog * dlg) { - if (blockDialogs) - { - int retValue = dlg->exec(); - dialogFinished(dlg); - Q_UNUSED(retValue); - return; - } - if (!openDialogs.contains(dlg)) { connect( @@ -82,18 +75,9 @@ void DialogManager::showDialog(Dialog * dlg->show(); } -void DialogManager::dialogFinished(Dialog * dlg) +void DialogManager::dialogFinished() { - if (dlg == 0) - { - dlg = qobject_cast(sender()); - } - I(dlg); - - // TODO emit whatever data need to be returned here - if (blockDialogs) - return; - + Dialog * dlg = qobject_cast(sender()); I(openDialogs.contains(dlg)); disconnect( @@ -136,12 +120,9 @@ void DialogManager::dialogFinished(Dialo Dialog * other = openDialogs.top(); other->raise(); other->activateWindow(); + return; } - else - { - QWidget * parent = parentWidget(); - parent->raise(); - parent->activateWindow(); - } + + emit allDialogsClosed(); } ============================================================ --- src/view/dialogs/DialogManager.h 5b396cb1d3b2b3231fe2021fe884549e9a41ecc4 +++ src/view/dialogs/DialogManager.h 8a3054aa20ecbfe9fa9e9d076eabbaf46a9568ab @@ -29,15 +29,16 @@ public: { Q_OBJECT public: - DialogManager(QWidget *, bool blockDialogs = false); + DialogManager(QWidget *); ~DialogManager(); public slots: void showAbout(); void showPreferences(); -void fooBar() { D("test"); } + virtual void closeAllDialogs(); - virtual void closeAllDialogs(); +signals: + void allDialogsClosed(); protected: QWidget * parentWidget() const; @@ -50,10 +51,9 @@ private: void cleanup(); QStack openDialogs; - bool blockDialogs; private slots: - void dialogFinished(Dialog * dlg = 0); + void dialogFinished(); }; #endif ============================================================ --- src/view/dialogs/WorkspaceDialogManager.cpp a07aa7f29c83306b0af77ec51f791e0966de43e6 +++ src/view/dialogs/WorkspaceDialogManager.cpp bd47881e7ff2475f0843c7219cf96a617bebd623 @@ -20,8 +20,8 @@ #include "MonotoneUtil.h" #include "GuitoneCore.h" -WorkspaceDialogManager::WorkspaceDialogManager(QWidget * parent, bool blockDialogs) - : DatabaseDialogManager(parent, blockDialogs), commitRevision(0), +WorkspaceDialogManager::WorkspaceDialogManager(QWidget * parent) + : DatabaseDialogManager(parent), commitRevision(0), unaccountedRenames(0), updateWorkspace(0) {} WorkspaceDialogManager::~WorkspaceDialogManager() ============================================================ --- src/view/dialogs/WorkspaceDialogManager.h 1bbaa9095ac458a84cdd56f5cdcd49859511619a +++ src/view/dialogs/WorkspaceDialogManager.h d6b72b390c5377e0e5f44a530a06495d927512d5 @@ -31,7 +31,7 @@ public: { Q_OBJECT public: - WorkspaceDialogManager(QWidget *, bool blockDialogs = false); + WorkspaceDialogManager(QWidget *); ~WorkspaceDialogManager(); //! delegated signals