]> vaikene.ee Git - evaf/blobdiff - src/libs/Common/app.h
Added iApp::exec() function, which enters the Qt event loop and runs the application.
[evaf] / src / libs / Common / app.h
index 5d8886e9e629808b1abb24f519e750ddeb6d1752..34f7a5d73d7bec77413cb717ccae869a1d511b7a 100644 (file)
@@ -25,6 +25,8 @@
 #include <QObject>
 #include <QString>
 
+class QEvent;
+
 namespace eVaf {
 namespace Common {
 namespace Internal {
@@ -48,6 +50,8 @@ public:
      */
     bool init();
 
+    virtual bool event(QEvent *);
+
     /*
         iApp interface
     */
@@ -57,14 +61,30 @@ public:
 
     virtual QString const xmlFileName() const;
 
+    virtual int exec();
+
     virtual void restart();
 
     virtual void quit(bool err = false);
 
     virtual bool isReady() const { return mReady; }
 
+    virtual QString const rootDir() const { return mRootDir; }
+
+    virtual QString const dataRootDir() const;
+
+    virtual QString const binDir() const { return mBinDir; }
+
+    virtual QString const etcDir() const;
 
-private:
+    virtual QString const logDir() const;
+
+    virtual QString const docDir() const;
+
+    virtual QString const qtPluginsDir() const;
+
+
+private: // Members
 
     /// Flag indicating that the eVaf application is ready
     bool mReady;
@@ -78,6 +98,38 @@ private:
     /// Name of the application's XML file
     mutable QString mXmlFile;
 
+    /// Name of the root directry
+    QString mRootDir;
+
+    /// Name of the data root directory
+    mutable QString mDataRootDir;
+
+    /// Name of the binary directory
+    QString mBinDir;
+
+    /// Name of the Qt plugins directory
+    mutable QString mQtPluginsDir;
+
+    /// Name of the configuration files directory
+    mutable QString mEtcDir;
+
+    /// Name of the log files directory
+    mutable QString mLogDir;
+
+    /// Name of the documentation directory
+    mutable QString mDocDir;
+
+    /// Event numbers
+    uint mEvQuit;
+    uint mEvRestart;
+    uint mEvReady;
+    uint mEvTerminating;
+
+
+private: // Methods
+
+    void setReady(bool value);
+
 };
 
 } // namespace eVaf::Common::Internal