X-Git-Url: https://vaikene.ee/gitweb/pswgen11.html?a=blobdiff_plain;ds=inline;f=src%2Fmain%2FGUI%2Fmain.cpp;h=806617b22f1b5ed31b1862f684dfcac8a4eb82cf;hb=HEAD;hp=c30e7adba2eb2ae617bc49eedb0d5b417e10df2d;hpb=e4bcb978b8042617a80cbf1ab74a3251a4caf1d8;p=evaf
diff --git a/src/main/GUI/main.cpp b/src/main/GUI/main.cpp
index c30e7ad..806617b 100644
--- a/src/main/GUI/main.cpp
+++ b/src/main/GUI/main.cpp
@@ -3,7 +3,7 @@
* @brief The main eVaf GUI application class
* @author Enar Vaikene
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
@@ -82,7 +82,7 @@ static eVaf::Common::iLogger::Severity ConsoleSeverityLevel = eVaf::Common::iLog
*
* This function outputs messages to the console and to the log file.
*/
-static void messageOutput(QtMsgType type, char const * const msg)
+static void messageOutput(QtMsgType type, QMessageLogContext const &, QString const & msg)
{
static bool inHandler = false;
@@ -127,20 +127,18 @@ static void messageOutput(QtMsgType type, char const * const msg)
*/
static void fatalMsgHandler(QString const & msg, QString const & source, QString const & where)
{
+ Q_UNUSED(source)
+
// Show the message on the screen
if (BeVerbose) {
if (FatalErr::message(QObject::tr("Fatal Error"),
QObject::tr("%1\n\nOccurred in '%2'")
.arg(msg)
.arg(where),
- 0) == FatalErr::Ignore)
+ nullptr) == FatalErr::Ignore)
return;
}
-#ifdef Q_OS_LINUX
- abort();
-#else
exit(1);
-#endif
}
} // namespace eVaf::GUI::Internal
@@ -357,7 +355,7 @@ int main(int argc, char ** argv)
// Install our own message handlers
Common::iLogger::instance()->installFatalMsgHandler(Internal::fatalMsgHandler);
- qInstallMsgHandler(Internal::messageOutput);
+ qInstallMessageHandler(Internal::messageOutput);
// Process command-line arguments
if (!Application::processCommandLine(argc, argv))
@@ -389,34 +387,39 @@ int main(int argc, char ** argv)
if (!Internal::installExitHandler())
return 1;
- // Plugin manager
- Plugins::PluginManager pluginManager;
+ int rval = 0;
+ {
+ // Plugin manager
+ Plugins::PluginManager pluginManager;
- // The main run loop
- bool quit = false;
- int rval;
- while (!quit) {
+ // The main run loop
+ bool quit = false;
+ while (!quit) {
- EVAF_INFO("%s is starting up", VER_MODULE_NAME_STR);
+ EVAF_INFO("%s is starting up", VER_MODULE_NAME_STR);
- // Initialize the common library
- if (!Common::init())
- return 1;
+ // Initialize the common library
+ if (!Common::init())
+ return 1;
- // Initialize the plugin manager and load plugins
- if (!pluginManager.init())
- return 1;
+ // Initialize the plugin manager and load plugins
+ if (!pluginManager.init())
+ return 1;
- // Run the application
- EVAF_INFO("Running %s", VER_MODULE_NAME_STR);
- rval = app.exec();
+ // Run the application
+ EVAF_INFO("Running %s", VER_MODULE_NAME_STR);
+ rval = Common::iApp::instance()->exec();
- quit = rval != Common::iApp::RC_Restart;
+ quit = rval != Common::iApp::RC_Restart;
- EVAF_INFO("%s is %s", VER_MODULE_NAME_STR, quit ? "exiting" : "restarting");
+ EVAF_INFO("%s is %s", VER_MODULE_NAME_STR, quit ? "exiting" : "restarting");
- // Unload plugins and finalize the plugin manager
- pluginManager.done();
+ // Unload plugins and finalize the plugin manager
+ pluginManager.done();
+
+ // Finalize the common library
+ Common::done();
+ }
}
EVAF_INFO("%s exit with code %d", VER_MODULE_NAME_STR, rval);