OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
ToolManager.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// Toolkit header
9
10// OpenTwin header
12
13// Qt header
14#include <QtCore/qstring.h>
15#include <QtCore/qobject.h>
16#include <QtWidgets/qmenu.h>
17
18// std header
19#include <map>
20
21class AppBase;
22class MenuManager;
23class StatusManager;
24class ToolBarManager;
25class ToolBarManager;
26class SettingsManager;
27class ToolViewManager;
29
30namespace otoolkit { class Tool; };
31
32class ToolManager : public QObject {
33 Q_OBJECT
35public:
36 ToolManager(AppBase* _app);
37 virtual ~ToolManager();
38
39 // ###########################################################################################################################################################################################################################################################################################################################
40
41 // Setter / Getter
42
44 bool addTool(otoolkit::Tool* _tool);
45
48 otoolkit::Tool* findTool(const QString& _toolName);
49
51 void removeTool(const QString& _toolName);
52
55 void removeTool(otoolkit::Tool* _tool);
56
57 void clear(void);
58
59 MenuManager* getMenuManager(void) { return m_menuManager; };
60 StatusManager* getStatusManager(void) { return m_statusManager; };
61 ToolBarManager* getToolBarManager(void) { return m_toolBarManager; };
62 ToolViewManager* getToolViewManager(void) { return m_toolViewManager; };
63 SettingsManager* getToolSettingsManager(void) { return m_settingsManager; };
64
65 // ###########################################################################################################################################################################################################################################################################################################################
66
67 // Runtime handling
68
69 void runTool(const QString& _toolName);
70
71 void stopAll(void);
72
73 void stopTool(const QString& _toolName);
74
76
77 // ###########################################################################################################################################################################################################################################################################################################################
78
79 // Private: Slots
80
81private Q_SLOTS:
82 void slotRunToolTriggered(void);
83 void slotViewFocused(const QString& _viewName, const QString& _toolName);
84 void slotViewFocusLost(const QString& _viewName, const QString& _toolName);
85 void slotViewCloseRequested(const QString& _viewName, const QString& _toolName);
86 void slotSettingsRequested(void);
87
88private:
89 void fwdRemoveTool(const QString& _toolName);
90
91
92 std::map<QString, ToolRuntimeHandler*> m_tools;
93
94 bool m_ignoreEvents;
95 MenuManager* m_menuManager;
96 StatusManager* m_statusManager;
97 ToolBarManager* m_toolBarManager;
98 ToolViewManager* m_toolViewManager;
99 SettingsManager* m_settingsManager;
100
101 ToolManager() = delete;
102};
This file contains defines that may be used simplyfy class creation.
#define OT_DECL_NOCOPY(___class)
Removes the default copy constructor and assignment operator.
Definition OTClassHelper.h:14
The API manager is used to manage the global objects required for this API to work.
Definition AppBase.h:21
Definition MenuManager.h:22
Definition SettingsManager.h:22
Definition StatusManager.h:19
Definition ToolBarManager.h:23
Definition ToolManager.h:32
ToolViewManager * getToolViewManager(void)
Definition ToolManager.h:62
otoolkit::Tool * findTool(const QString &_toolName)
Returns the tool with the specified name If no tool was found nullptr will be returned.
Definition ToolManager.cpp:65
virtual ~ToolManager()
Definition ToolManager.cpp:42
StatusManager * getStatusManager(void)
Definition ToolManager.h:60
bool addTool(otoolkit::Tool *_tool)
Stores the provided tool.
Definition ToolManager.cpp:50
void stopAll(void)
Definition ToolManager.cpp:154
void stopTool(const QString &_toolName)
Definition ToolManager.cpp:162
void removeTool(const QString &_toolName)
Cleans up and deletes the tool with the provided name.
Definition ToolManager.cpp:73
void clear(void)
Definition ToolManager.cpp:98
SettingsManager * getToolSettingsManager(void)
Definition ToolManager.h:63
void toolDataHasChanged(ToolRuntimeHandler *_handler)
Definition ToolManager.cpp:180
MenuManager * getMenuManager(void)
Definition ToolManager.h:59
ToolBarManager * getToolBarManager(void)
Definition ToolManager.h:61
void runTool(const QString &_toolName)
Definition ToolManager.cpp:114
Definition ToolRuntimeHandler.h:17
Definition ToolViewManager.h:22
Definition Tool.h:27
Definition ToolManager.h:30