OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
VersionGraphManager.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
10
11// Qt header
12#include <QtCore/qobject.h>
13
14namespace ot {
15
16 class LineEdit;
17 class ComboBox;
18
20 Q_OBJECT
21 public:
28 static std::string viewModeToString(ViewMode _mode);
29 static ViewMode stringToViewMode(const std::string& _mode);
30
32 virtual ~VersionGraphManager();
33
34 virtual QWidget* getQWidget(void) override { return m_root; };
35
36 VersionGraph* getGraph(void) { return m_graph; };
37 const VersionGraph* getGraph(void) const { return m_graph; };
38
39 void setupConfig(VersionGraphCfg&& _config);
40
41 void setCurrentViewMode(ViewMode _mode);
42 ViewMode getCurrentViewMode(void) const;
43
44 void addVersion(const std::string& _parentVersionName, const VersionGraphVersionCfg& _config);
45
46 VersionGraphVersionCfg* addVersion(const ConstJsonObject& _versionConfig);
47
48 void activateVersion(const std::string& _versionName, const std::string& _activeBranchVersionName);
49
50 void removeVersion(const std::string& _versionName);
51
52 void removeVersions(const std::list<std::string>& _versionNames);
53
54 public Q_SLOTS:
55 void updateCurrentGraph(void);
56
57 private:
58 void updateCurrentGraphViewAllMode(void);
59 void updateCurrentGraphCompactMode(void);
60 void updateCurrentGraphCompactLabelMode(void);
61 void updateCurrentGraphLabeledOnlyMode(void);
62
64 bool checkFilterValid(const VersionGraphVersionCfg* _versionConfig, const QString& _filterText) const;
65
66 void processViewAllWithTextFilter(VersionGraphVersionCfg* _parent, const VersionGraphVersionCfg* _config, const std::string& _activeVersion, bool _isDirectParent, const QString& _filterText);
67 void startProcessCompact(bool _includeLabeledVersions, const QString& _filterText);
68 void processCompactItem(VersionGraphVersionCfg* _parent, const VersionGraphVersionCfg* _config, const std::string& _activeVersion, bool _isDirectParent, bool _includeLabeledVersions, const QString& _filterText);
69 void processLabeledOnlyItem(VersionGraphVersionCfg* _parent, const VersionGraphVersionCfg* _config, const std::string& _activeVersion, bool _isDirectParent, const QString& _filterText);
70
71 QWidget* m_root;
72 VersionGraph* m_graph;
73 LineEdit* m_textFilter;
74 ComboBox* m_modeSelector;
75
76 VersionGraphCfg m_config;
77 };
78
79}
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
Definition ComboBox.h:17
Definition LineEdit.h:17
Definition QWidgetInterface.h:18
Definition VersionGraphCfg.h:13
Definition VersionGraph.h:16
Definition VersionGraphManager.h:19
const VersionGraph * getGraph(void) const
Definition VersionGraphManager.h:37
ViewMode
Definition VersionGraphManager.h:22
@ Compact
Definition VersionGraphManager.h:24
@ CompactLabeled
Definition VersionGraphManager.h:25
@ ViewAll
Definition VersionGraphManager.h:23
virtual QWidget * getQWidget(void) override
Returns a pointer to the root widget of this object.
Definition VersionGraphManager.h:34
VersionGraph * getGraph(void)
Definition VersionGraphManager.h:36
Definition VersionGraphVersionCfg.h:22
Definition Connector.h:8
rapidjson::GenericObject< true, rapidjson::GenericValue< rapidjson::UTF8<>, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > > > ConstJsonObject
Read only JSON Object.
Definition JSON.h:35