app.h
Go to the documentation of this file.
1 #ifndef APP_H
2 #define APP_H
3 
4 #include <QGuiApplication>
5 #include <QQmlApplicationEngine>
6 #include "processmanager.h"
8 #include "session.h"
9 #include "editor.h"
10 
11 namespace dnai {
12  class App : public QGuiApplication, public interfaces::ILoadingClass
13  {
14  Q_OBJECT
15  public:
16  App(int & argc, char **argv);
17  ~App() override;
18 
19  void loadMainWindow();
20  void initProcessManager();
21  bool eventFilter(QObject* o, QEvent* event) override;
22  void versionsUpdater();
24  void close(int retcode=0);
25 
26  public:
27  Session &session();
28  QQmlApplicationEngine &engine();
30  bool isNewVersionAvailable() const;
31  qreal getSettingNumber(const QString &path);
32 
33  public:
34  static void loadFonts();
35  static App &currentInstance();
36  static QObject *createQmlObject(const QString &path);
37  static QQmlEngine *getEngineInstance();
38 
39  Q_INVOKABLE void onBuildStart();
40  Q_INVOKABLE bool isMac();
41 
42  void afterInit();
43  public slots:
44  void loadSplashScreen();
45  private:
46  QQmlApplicationEngine m_engine;
49  static App *m_instance;
51  QMap<QString, qreal> m_loadedNumbers;
52 
53  QObject *createQmlComponent(const QString &path);
54  static void setupSettings();
55  void initAppView();
56 
57  void setVersion(const QString &ver);
58  void setAPIVersion(const QString &ver);
59 
60  protected:
61  std::queue<std::function<void()>> init() override;
62  };
63 }
64 
65 #endif // APP_H
Session m_session
Definition: app.h:48
void onNotifyVersionChanged()
Definition: app.cpp:303
You can use this class in order to display the loading status or call a callback before, after each step or/and after all step.
Definition: iloadingclass.h:14
Definition: session.h:8
void versionsUpdater()
Definition: app.cpp:51
qreal getSettingNumber(const QString &path)
Definition: app.cpp:273
Session & session()
Definition: app.cpp:184
QString m_currentVersionAPI
Definition: app.h:50
void setVersion(const QString &ver)
Definition: app.cpp:265
static App * m_instance
Definition: app.h:49
void close(int retcode=0)
Definition: app.cpp:45
ProcessManager & processManager()
Definition: app.cpp:160
static QObject * createQmlObject(const QString &path)
Definition: app.cpp:189
Definition: processmanager.h:8
void loadSplashScreen()
Definition: app.cpp:33
QObject * createQmlComponent(const QString &path)
Definition: app.cpp:165
QQmlApplicationEngine & engine()
Definition: app.cpp:179
void loadMainWindow()
Definition: app.cpp:135
App(int &argc, char **argv)
Definition: app.cpp:25
ProcessManager m_processManager
Definition: app.h:47
Definition: app.h:12
Q_INVOKABLE void onBuildStart()
Definition: app.cpp:235
Q_INVOKABLE bool isMac()
Definition: app.cpp:256
std::queue< std::function< void()> > init() override
You need to implement this function in order to define the loading steps.
Definition: app.cpp:107
void initProcessManager()
Definition: app.cpp:82
bool isNewVersionAvailable() const
Definition: app.cpp:286
static App & currentInstance()
Definition: app.cpp:172
~App() override
Definition: app.cpp:41
Definition: api.h:13
void setAPIVersion(const QString &ver)
Definition: app.cpp:269
bool eventFilter(QObject *o, QEvent *event) override
Definition: app.cpp:140
void afterInit()
Definition: app.cpp:119
static QQmlEngine * getEngineInstance()
Definition: app.cpp:194
void initAppView()
Definition: app.cpp:100
static void setupSettings()
Definition: app.cpp:93
static void loadFonts()
Definition: app.cpp:123
QQmlApplicationEngine m_engine
Definition: app.h:46
QMap< QString, qreal > m_loadedNumbers
Definition: app.h:51