* @brief Application interface implementation
* @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.
*
#include <QObject>
#include <QString>
+class QEvent;
+
namespace eVaf {
namespace Common {
namespace Internal {
public:
+ /**
+ * Destroys the iApp interface instance
+ */
+ static void destroyInstance();
+
App();
virtual ~App();
*/
bool init();
+ virtual bool event(QEvent *);
+
/*
iApp interface
*/
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;
+
+ virtual QString const logDir() const;
+
+ virtual QString const docDir() const;
+
+ virtual QString const qtPluginsDir() const;
-private:
+
+private: // Members
/// Flag indicating that the eVaf application is ready
bool mReady;
/// 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