diff --git a/src/blackcore/application.cpp b/src/blackcore/application.cpp index a723ad715..297c3f3f5 100644 --- a/src/blackcore/application.cpp +++ b/src/blackcore/application.cpp @@ -873,14 +873,15 @@ namespace BlackCore // help/version if (this->m_parser.isSet(this->m_cmdHelp)) { - // Important parser help will already stop application + // Important: parser help will already stop application this->cmdLineHelpMessage(); - return true; + return false; } if (this->m_parser.isSet(this->m_cmdVersion)) { + // Important: version will already stop application this->cmdLineVersionMessage(); - return true; + return false; } // dev. diff --git a/src/blackcore/application.h b/src/blackcore/application.h index e9419645b..a46f0f9e6 100644 --- a/src/blackcore/application.h +++ b/src/blackcore/application.h @@ -244,6 +244,7 @@ namespace BlackCore //! Parses and handles the standard options such as help, version, parse error //! \note in some cases (error, version, help) application is terminated during this step //! \sa parsingHookIn + //! \return true means to continue, false to stop bool parse(); //! @} diff --git a/src/swiftcore/main.cpp b/src/swiftcore/main.cpp index ba999b771..58259c6eb 100644 --- a/src/swiftcore/main.cpp +++ b/src/swiftcore/main.cpp @@ -50,6 +50,7 @@ int main(int argc, char *argv[]) if (!QSystemTrayIcon::isSystemTrayAvailable()) { a.cmdLineErrorMessage("I could not detect any system tray on this system."); + a.gracefulShutdown(); return EXIT_FAILURE; } diff --git a/src/swiftdata/main.cpp b/src/swiftdata/main.cpp index cf45b6b8a..09cece84c 100644 --- a/src/swiftdata/main.cpp +++ b/src/swiftdata/main.cpp @@ -29,9 +29,13 @@ int main(int argc, char *argv[]) CGuiApplication a("swift mapping tool", CApplicationInfo::MappingTool, CIcons::swiftDatabase48()); a.setSignalStartupAutomatically(false); // application will signal startup on its own a.splashScreen(CIcons::swiftDatabase256()); - a.parse(); + if (!a.parse()) { return EXIT_FAILURE; } a.useWebDataServices(BlackCore::CWebReaderFlags::AllSwiftDbReaders, CDatabaseReaderConfigList::forMappingTool()); - if (!a.start()) { return EXIT_FAILURE; } + if (!a.start()) + { + a.gracefulShutdown(); + return EXIT_FAILURE; + } CSwiftData w; w.show(); int r = a.exec(); diff --git a/src/swiftguistandard/main.cpp b/src/swiftguistandard/main.cpp index 660a1ff1e..5edf40219 100644 --- a/src/swiftguistandard/main.cpp +++ b/src/swiftguistandard/main.cpp @@ -24,9 +24,11 @@ int main(int argc, char *argv[]) //! [SwiftApplicationDemo] CGuiApplication::highDpiScreenSupport(); QApplication qa(argc, argv); + Q_UNUSED(qa); // application init needed CSwiftGuiStdApplication a; a.setSignalStartupAutomatically(false); // application will signal startup on its own a.splashScreen(CIcons::swift256()); + if (!a.parse()) { return EXIT_FAILURE; } if (!a.start()) { a.gracefulShutdown(); diff --git a/src/swiftlauncher/main.cpp b/src/swiftlauncher/main.cpp index 21e1dc7fb..af860110e 100644 --- a/src/swiftlauncher/main.cpp +++ b/src/swiftlauncher/main.cpp @@ -34,7 +34,7 @@ int main(int argc, char *argv[]) CGuiApplication a("swift launcher", CApplicationInfo::Laucher, CIcons::swiftLauncher1024()); a.useWebDataServices(BlackCore::CWebReaderFlags::AllSwiftDbReaders, CDatabaseReaderConfigList::forLauncher()); a.addParserOption({{"i", "installer"}, QCoreApplication::translate("main", "Installer setup."), "installer"}); - a.parse(); + if (!a.parse()) { return EXIT_FAILURE; } if (!a.start()) { return EXIT_FAILURE; } //! [SwiftApplicationDemo]