Loading...
Searching...
No Matches
ScenarioApplicationPlugin.hpp
1#pragma once
2#include <Process/Layer/LayerContextMenu.hpp>
3
4#include <Scenario/Application/Menus/ObjectMenuActions.hpp>
5#include <Scenario/Application/Menus/ToolMenuActions.hpp>
6#include <Scenario/Application/Menus/TransportActions.hpp>
7#include <Scenario/Application/ScenarioEditionSettings.hpp>
8#include <Scenario/Execution/ScenarioExecution.hpp>
9#include <Scenario/Palette/ScenarioPoint.hpp>
10
11#include <score/plugins/application/GUIApplicationPlugin.hpp>
12
13#include <score_plugin_scenario_export.h>
14
15#include <vector>
16#include <verdigris>
17
18namespace Process
19{
20class LayerPresenter;
21class ProcessFocusManager;
22}
23namespace score
24{
25class Document;
26} // namespace score
27
28class QAction;
29namespace Scenario
30{
31class ObjectMenuActions;
32class ScenarioActions;
33class ScenarioPresenter;
34class ToolMenuActions;
35class ProcessModel;
36class ScenarioInterface;
37class StateModel;
38
39class SCORE_PLUGIN_SCENARIO_EXPORT ScenarioApplicationPlugin final
40 : public QObject
42{
44 friend class ScenarioContextMenuManager;
45
46public:
49
50 void initialize() override;
51 GUIElements makeGUIElements() override;
52
53 ScenarioPresenter* focusedPresenter() const;
54
55 void reinit_tools();
56
57 Scenario::EditionSettings& editionSettings() { return m_editionSettings; }
58
59 Process::ProcessFocusManager* processFocusManager() const;
60 Scenario::ScenarioExecution& execution() { return m_execution; }
61
62 TransportActions& transportActions() { return m_transportActions; };
63
64public:
65 void keyPressed(int arg_1) E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, keyPressed, arg_1)
66 void keyReleased(int arg_1) E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, keyReleased, arg_1)
67
68private:
69 void prepareNewDocument() override;
70 void on_initDocument(score::Document& doc) override;
71 void on_createdDocument(score::Document& doc) override;
72
73 void on_documentChanged(score::Document* olddoc, score::Document* newdoc) override;
74
75 void on_activeWindowChanged() override;
76
77 void on_presenterFocused(Process::LayerPresenter* lm);
78 void on_presenterDefocused(Process::LayerPresenter* lm);
79
80 QMetaObject::Connection m_focusConnection, m_defocusConnection,
81 m_contextMenuConnection, m_keyPressConnection, m_keyReleaseConnection;
82
83 Scenario::EditionSettings m_editionSettings;
84 ScenarioExecution m_execution;
85
86 ObjectMenuActions m_objectActions{this};
87 ToolMenuActions m_toolActions{this};
88 TransportActions m_transportActions{context};
89 QAction* m_showCables{};
90 QAction* m_autoScroll{};
91 QAction* m_foldIntervals{};
92 QAction* m_unfoldIntervals{};
93 QAction* m_levelUp{};
94};
95}
Definition LayerPresenter.hpp:34
Definition ProcessFocusManager.hpp:33
Definition ScenarioEditionSettings.hpp:14
Definition ObjectMenuActions.hpp:19
Definition ScenarioApplicationPlugin.hpp:42
Definition ScenarioContextMenuManager.hpp:27
API for the various elements that we can execute.
Definition Execution/ScenarioExecution.hpp:25
Definition ScenarioPresenter.hpp:29
Definition ToolMenuActions.hpp:22
Definition TransportActions.hpp:18
The Document class is the central part of the software.
Definition Document.hpp:51
Used to extend the software with application-wide data.
Definition GUIApplicationPlugin.hpp:89
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13
Base toolkit upon which the software is built.
Definition Application.cpp:97
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15
Definition GUIApplicationPlugin.hpp:24