]> vaikene.ee Git - evaf/blobdiff - src/main/GUI/main.cpp
Warning fixes and copyright update.
[evaf] / src / main / GUI / main.cpp
index 68062462daeb74aecfa8d5866b9eb9249133079a..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.
  *
@@ -29,7 +29,6 @@
 
 #include <Common/Globals>
 #include <Common/iLogger>
-#include <Common/iEnv>
 #include <Common/iApp>
 
 #include <Plugins/PluginManager>
@@ -83,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;
 
@@ -128,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
@@ -235,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;
                 }
             }
@@ -263,7 +260,6 @@ void Application::printHelp()
         "  -lang[uage]=xx[_CC] Specifies the language, where xx is the ISO 639\n"
         "                   language code followed by an optional ISO 3166 country\n"
         "                   code.\n"
-        // Handled by the iEnv interface implementation
         "  -root[dir]=DIR   Specifies the application's root directory.\n"
         "  -dataroot[dir]=DIR Specifies the data root directory.\n"
         "  -etc[dir]=DIR    Specifies the configuration files directory.\n"
@@ -359,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))
@@ -391,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);