]> vaikene.ee Git - evaf/blobdiff - src/main/GUI/main.cpp
Warning fixes and copyright update.
[evaf] / src / main / GUI / main.cpp
index 30f1500923177dd8da0545a2d1e18b582c310078..806617b22f1b5ed31b1862f684dfcac8a4eb82cf 100644 (file)
@@ -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
@@ -234,7 +232,7 @@ bool Application::processCommandLine(int argc, char ** argv)
                     case Common::iLogger::Info:
                         Internal::ConsoleSeverityLevel = Common::iLogger::Debug;
                         break;
-                    case Common::iLogger::Debug:
+                    default:
                         break;
                 }
             }
@@ -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);