Loading...
Searching...
No Matches
Application.hpp
1#pragma once
2#include <score/application/ApplicationContext.hpp>
3
4#include <core/application/ApplicationInterface.hpp>
5#include <core/application/ApplicationSettings.hpp>
6#include <core/plugin/PluginManager.hpp>
7#include <core/settings/Settings.hpp>
8
9#include <QApplication>
10#include <QPointer>
11
12#include <memory>
13#include <verdigris>
14
15namespace score
16{
17class Settings;
18} // namespace score
19
21namespace score
22{
23class Presenter;
24class View;
25class StartScreen;
26}
27
35class Application final
36 : public QObject
38{
39 W_OBJECT(Application)
40 friend class ChildEventFilter;
41
42public:
43 Application(int& argc, char** argv);
44
45 Application(const score::ApplicationSettings& appSettings, int& argc, char** argv);
46
47 Application(const Application&) = delete;
48 Application& operator=(const Application&) = delete;
50
51 int exec();
52
53 const score::GUIApplicationContext& context() const override;
54 const score::ApplicationComponents& components() const override;
55 void init(); // m_applicationSettings has to be set.
56
57 void showStartScreen() override;
58
60
61private:
62 void initDocuments();
63 void openNewDocument();
64 void createStartScreen();
65
66 // Base stuff.
67 QCoreApplication* m_app;
68 score::Settings m_settings; // Global settings
69 score::ProjectSettings m_projectSettings; // Per project
70
71 // MVP
72 score::View* m_view{};
73 score::Presenter* m_presenter{};
74 QPointer<score::StartScreen> m_startScreen;
75};
Application.
Definition Application.hpp:38
void showStartScreen() override
Implemented by the application that owns one; a no-op otherwise.
Definition Application.cpp:602
Wrapper over QApplication.
Definition SafeQApplication.hpp:44
Definition ApplicationComponents.hpp:68
Definition ApplicationInterface.hpp:53
The Presenter class.
Definition lib/core/presenter/Presenter.hpp:36
Definition lib/core/settings/Settings.hpp:81
Application-wide user settings registering and handling.
Definition lib/core/settings/Settings.hpp:42
The main display of the application.
Definition lib/core/view/Window.hpp:41
Base toolkit upon which the software is built.
Definition Application.cpp:83
Load-time settings.
Definition ApplicationSettings.hpp:26
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15