XX CMake Package
Loading...
Searching...
No Matches
XXManagedTreeView.h
Go to the documentation of this file.
1#ifndef XXManagedTreeViewH
2#define XXManagedTreeViewH
3
5#include <QTreeView>
6
7#include <QStandardItem>
8
9namespace XX
10{
11 namespace Managed
12 {
16
17 class XXWIDGETS_DECLSPEC TreeView : public QTreeView
18 {
19 Q_OBJECT
20
21 public:
22 TreeView(QWidget* parent);
23
24 public:
25 template <typename TargetClass>
26 void onSelected(TargetClass* instance, void (TargetClass::*memberFunction)(QStandardItem*));
27
28 template <typename TargetClass>
29 void onDoubleClicked(TargetClass* instance, bool (TargetClass::*memberFunction)(QStandardItem*));
30
31 template <typename TargetClass>
32 void onContextMenu(TargetClass* instance, QMenu* (TargetClass::*memberFunction)(QStandardItem*));
33
34 void setModel(QAbstractItemModel* model) override;
35 QModelIndex currentSourceIndex() const;
36 QStandardItem* getCurrentItem() const;
37
38 private:
39 using SelectFunction = std::function<void(QStandardItem*)>;
40 using DoubleClickFunction = std::function<bool(QStandardItem*)>;
41 using MenuFunction = std::function<QMenu*(QStandardItem*)>;
42
43 private:
44 void selected(const QModelIndex& index);
45 void mouseDoubleClickEvent(QMouseEvent* event) override;
46 void contextMenuRequested(const QPoint& point);
47 QStandardItem* getItemFromIndex(const QModelIndex& index) const;
48 QStandardItem* getItemAtPoint(const QPoint& point) const;
49
50 private:
51 QMetaObject::Connection selectConnetion;
52 SelectFunction selectedFunction;
53 DoubleClickFunction doubleClickFunction;
54 MenuFunction contextMenuFunction;
55 };
56 } // namespace Managed
57} // namespace XX
58
59#ifndef XXManagedTreeViewHPP
60#include "XXManagedTreeView.hpp"
61#endif // NOT XXManagedTreeViewHPP
62
63#endif // NOT XXManagedTreeViewH
#define XXWIDGETS_DECLSPEC
Definition XXWidgetsExportDef.h:11
void setModel(QAbstractItemModel *model) override
TreeView(QWidget *parent)
void onContextMenu(TargetClass *instance, QMenu *(TargetClass::*memberFunction)(QStandardItem *))
QModelIndex currentSourceIndex() const
void onDoubleClicked(TargetClass *instance, bool(TargetClass::*memberFunction)(QStandardItem *))
QStandardItem * getCurrentItem() const
void onSelected(TargetClass *instance, void(TargetClass::*memberFunction)(QStandardItem *))
Definition XXManagedGraphicsView.h:10
Definition XXPopulatedAbstract.h:11