OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
TreeWidget.h
Go to the documentation of this file.
1
4// ###########################################################################################################################################################################################################################################################################################################################
5
6#pragma once
7
8// OpenTwin header
13
14// Qt header
15#include <QtCore/qlist.h>
16#include <QtWidgets/qtreewidget.h>
17
18// std header
19#include <list>
20
21namespace ot {
22
23 class OT_WIDGETS_API_EXPORT TreeWidget : public QTreeWidget, public ot::QWidgetInterface {
24 Q_OBJECT
25 public:
31
32 TreeWidget(QWidget * _parentWidget = (QWidget*)nullptr);
33 virtual ~TreeWidget();
34
35 // ###########################################################################################################################################################################################################################################################################################################################
36
37 // Setter / Getter
38
40 virtual QWidget* getQWidget(void) override { return this; };
41 virtual const QWidget* getQWidget(void) const override { return this; };
42
43 QTreeWidgetItem* findItem(const QString& _itemPath, char _delimiter = '/') const;
44
48 bool itemExists(const QString& _itemPath, char _delimiter = '/') const { return this->findItem(_itemPath, _delimiter); };
49
54 bool itemTextExists(const QString& _itemText) const;
55
56 QString getItemPath(QTreeWidgetItem* _item, char _delimiter = '/') const;
57
58 QTreeWidgetItem* addItem(const TreeWidgetItemInfo& _item);
59
62 void deselectAll(void);
63
64 // ###########################################################################################################################################################################################################################################################################################################################
65
66 // Event handler
67
68 virtual void mousePressEvent(QMouseEvent* _event) override;
69
70 virtual void drawRow(QPainter* _painter, const QStyleOptionViewItem& _options, const QModelIndex& _index) const override;
71
72 // ###########################################################################################################################################################################################################################################################################################################################
73
74 // Protected: Helper
75
81 bool itemTextExists(QTreeWidgetItem* _parent, const QString& _itemText) const;
82
83 QTreeWidgetItem* findItem(QTreeWidgetItem* _item, const QStringList& _childPath) const;
84
85 QTreeWidgetItem* findItemText(QTreeWidgetItem* _parent, const QString& _itemText) const;
86
87 // ###########################################################################################################################################################################################################################################################################################################################
88
89 // Private: Slots
90
91 private Q_SLOTS:
92 void slotColorStyleAboutToChange(void);
93 void slotColorStyleChanged(const ColorStyle& _style);
94
95 private:
96 std::list<int> m_columnWidths;
97
98 // ###########################################################################################################################################################################################################################################################################################################################
99
100 // Private: Helper
101
102 QTreeWidgetItem* addItem(QTreeWidgetItem* _parent, const TreeWidgetItemInfo& _item);
103 void destroyRecursive(QTreeWidgetItem* _item);
104
105 };
106
107}
#define OT_WIDGETS_API_EXPORT
Definition OTWidgetsAPIExport.h:12
Definition ColorStyle.h:24
Definition QWidgetInterface.h:18
Definition TreeWidget.h:23
bool itemExists(const QString &_itemPath, char _delimiter='/') const
Checks if the item at the given path exists.
Definition TreeWidget.h:48
virtual const QWidget * getQWidget(void) const override
Definition TreeWidget.h:41
virtual QWidget * getQWidget(void) override
Returns a pointer to the root widget of this object.
Definition TreeWidget.h:40
Definition TreeWidgetItemInfo.h:17
Definition Connector.h:8
NavigationTreeItemFlag
Definition NavigationTreeItem.h:21
Definition TreeWidget.h:26
QIcon icon
Definition TreeWidget.h:28
QString text
Definition TreeWidget.h:27
NavigationTreeItemFlag flags
Definition TreeWidget.h:29