]> vaikene.ee Git - evaf/commitdiff
Added iApp::exec() function, which enters the Qt event loop and runs the application.
authorEnar Väikene <enar@vaikene.net>
Thu, 17 Nov 2011 07:44:03 +0000 (09:44 +0200)
committerEnar Väikene <enar@vaikene.net>
Thu, 17 Nov 2011 07:44:03 +0000 (09:44 +0200)
* Sets the application ready;
* Calls QCoreApplication::exec();
* Sets the application back to not ready.
Changed main application to use the iApp::exec() instead of QApplication::exec().

src/libs/Common/app.cpp
src/libs/Common/app.h
src/libs/Common/iapp.h
src/libs/Common/version.h
src/main/CLI/main.cpp
src/main/CLI/version.h
src/main/GUI/main.cpp

index 21818f9ebe7d1e67e1e6eff9c911ac17bd22efdf..60ee5bf698d00b809e6050bd2b6f17c9b4f8d76c 100644 (file)
@@ -274,6 +274,14 @@ QString const App::xmlFileName() const
     return mXmlFile;
 }
 
+int App::exec()
+{
+    setReady(true);
+    int rval = QCoreApplication::exec();
+    setReady(false);
+    return rval;
+}
+
 void App::restart()
 {
     QCoreApplication::exit(RC_Restart);
@@ -283,3 +291,15 @@ void App::quit(bool err)
 {
     QCoreApplication::exit(err ? RC_Error : RC_Quit);
 }
+
+void App::setReady(bool value)
+{
+    if (mReady != value) {
+        mReady = value;
+        iEventQueue::instance()->broadcastEvent(new Event(mReady ? mEvReady : mEvTerminating));
+        if (mReady)
+            emit ready();
+        else
+            emit terminating();
+    }
+}
index 8fb0dca887919f7916486c0ab580932d30df6c94..34f7a5d73d7bec77413cb717ccae869a1d511b7a 100644 (file)
@@ -61,6 +61,8 @@ public:
 
     virtual QString const xmlFileName() const;
 
+    virtual int exec();
+
     virtual void restart();
 
     virtual void quit(bool err = false);
@@ -82,7 +84,7 @@ public:
     virtual QString const qtPluginsDir() const;
 
 
-private:
+private: // Members
 
     /// Flag indicating that the eVaf application is ready
     bool mReady;
@@ -123,6 +125,11 @@ private:
     uint mEvReady;
     uint mEvTerminating;
 
+
+private: // Methods
+
+    void setReady(bool value);
+
 };
 
 } // namespace eVaf::Common::Internal
index 098abafde39410119d5b86f61af2cb7ea74876d7..31390e371c35e3565eab991b21f12f750b3b6e82 100644 (file)
@@ -129,6 +129,15 @@ public:
      */
     virtual QString const xmlFileName() const = 0;
 
+    /**
+     * Enters the main event loop of the Qt application.
+     * @return Value returned by the Qt application
+     *
+     * This function enters the event loop of the Qt application. Use this function to start event handling
+     * instead of calling QCoreApplication::exec() or QApplication::exec() functions directly.
+     */
+    virtual int exec() = 0;
+
     /**
      * Requests the eVaf application to restart.
      *
index 5feecd6f00fe4feed7a1a374c0594ca89f08378b..30d4175a849f8b8e370775975b3d3c09d8224d24 100644 (file)
 /**
  * Module/library version number in the form major,minor,release,build
  */
-#define VER_FILE_VERSION                0,1,3,6
+#define VER_FILE_VERSION                0,1,4,7
 
 /**
  * Module/library version number in the string format (shall end with \0)
  */
-#define VER_FILE_VERSION_STR            "0.1.3.6\0"
+#define VER_FILE_VERSION_STR            "0.1.4.7\0"
 
 /**
  * Module/library name (shall end with \0)
index 4e8fe7e0b606115889ed12b8fdec27cd84b48bfd..0c3cbb65d597548617cb14500c21d561306297f8 100644 (file)
@@ -281,7 +281,7 @@ int main(int argc, char ** argv)
 
         // Run the application
         EVAF_INFO("Running %s", VER_MODULE_NAME_STR);
-        rval = app.exec();
+        rval = Common::iApp::instance()->exec();
 
         quit = rval != Common::iApp::RC_Restart;
 
index 25d61e25c22814d019785fe06648b026f321b60e..17994d6bd87ecf76f892568ffb09de38c17b0928 100644 (file)
 /**
  * Module/library version number in the form major,minor,release,build
  */
-#define VER_FILE_VERSION                0,1,1,2
+#define VER_FILE_VERSION                0,1,2,3
 
 /**
  * Module/library version number in the string format (shall end with \0)
  */
-#define VER_FILE_VERSION_STR            "0.1.1.2\0"
+#define VER_FILE_VERSION_STR            "0.1.2.3\0"
 
 /**
  * Module/library name (shall end with \0)
index c30e7adba2eb2ae617bc49eedb0d5b417e10df2d..f0e765f5f574ff10e002f0cbf68a7b6519734b7a 100644 (file)
@@ -409,7 +409,7 @@ int main(int argc, char ** argv)
 
         // Run the application
         EVAF_INFO("Running %s", VER_MODULE_NAME_STR);
-        rval = app.exec();
+        rval = Common::iApp::instance()->exec();
 
         quit = rval != Common::iApp::RC_Restart;