VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
treeWidget.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
13 
16 
17 #include <QtWidgets/QTreeWidget>
18 #include <QtWidgets/QListWidget>
19 #include <QtGui/QKeyEvent>
20 
21 #include <vlutil/vlPerformanceStats.h>
22 
23 class QMimeData;
24 
25 namespace makVrv
26 {
27  class DtDe;
28 }
29 
30 namespace makVrf
31 {
33  static const int DtUserRoleForDoubleClickEdit = Qt::UserRole + 100;
34 
36  {
37  Q_OBJECT
38 
39  public:
41  DtTreeWidget(makVrv::DtDe& de, QWidget* parent);
42 
44  virtual ~DtTreeWidget();
45 
47  virtual QTreeWidgetItem* lastItem() const;
48 
50  QTreeWidgetItem* itemFromIndex(const QModelIndex& idx) { return QTreeWidget::itemFromIndex(idx); };
51 
53  QModelIndex indexFromItem(QTreeWidgetItem *item, int column = 0) const
54  {
55  return QTreeWidget::indexFromItem(item, column);
56  }
57 
59  virtual void setMinimumSizeHint(const QSize&);
60  virtual QSize minimumSizeHint() const;
61 
63  virtual void setSizeHint(const QSize& s) { mySizeHint = s; };
64 
66  virtual int indexOfChild(QTreeWidgetItem*) const;
67 
69  unsigned int depth(QTreeWidgetItem*) const;
70 
72  QTreeWidgetItem* nextSibling(QTreeWidgetItem*) const;
73 
75  void setAllowEmptySelection(bool);
76 
78  bool allowEmptySelection() const;
79 
81  virtual bool edit(const QModelIndex &index, EditTrigger trigger, QEvent *event);
82  virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint);
83 
84  virtual void itemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int col);
85 
87  virtual void mousePressEvent(QMouseEvent *event);
88 
90  virtual void mouseDoubleClickEvent(QMouseEvent *event);
91 
93  virtual void mouseReleaseEvent(QMouseEvent *event);
94 
95  virtual void itemLeftClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
96 
97  virtual bool editingCanceled() const { return myEditingCanceled; };
98 
101  virtual void setAllowWindowsStyleNameEdit(bool);
103  {
104  return myAllowWindowsStyleNameEdit;
105  }
106 
108  virtual void setDisableNameEditIfNotWindowsStyleEdit(bool);
110  {
111  return myDisableNameEditIfNotWindowsStyleEnabled;
112  }
113 
114  virtual void setEditPressTime(double);
115  double editPressTime() const
116  {
117  return myEditPressTime;
118  }
120 
121  QItemSelectionModel::SelectionFlags lastSelectionCommand() const
122  {
123  return myLastSelectionCommand;
124  }
125 
127  {
128  return myLastSelectHadControlKeyDown;
129  }
130 
131  signals:
132 
135  void mouseLeftPressed(QTreeWidgetItem*, QMouseEvent*, int col);
136 
138  void rightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col);
139 
141  void contentsMoving(int, int);
142 
143  protected slots:
144  virtual void checkForEdit();
145 
146  protected:
147 
149  virtual void scrollContentsBy(int, int);
150 
152  virtual QSize sizeHint() const;
153 
155  virtual QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index,
156  const QEvent *event = 0) const;
157 
159  virtual QItemSelectionModel::SelectionFlags selectionBehaviorFlags() const;
160 
161  protected:
162 
170  QSize mySizeHint;
175  mutable QItemSelectionModel::SelectionFlags myLastSelectionCommand;
177  };
178 
180  {
182  }
183 
185  {
186  return myAllowEmptySelection;
187  }
188 
191  {
192  public:
195 
196  virtual void manageIcon(int column, const std::string&, const QSize& size = QSize());
197  virtual void unmanageIcon(int column);
198  virtual void unmanageAllIcons();
199 
200  virtual QVariant data(int col, int role) const override;
201 
202  protected:
203  std::map<int, std::pair<std::string, QSize> > myManagedIcons;
205  };
206 
209  {
210  public:
213 
214  virtual DtThemedTreeWidgetItem* create(QTreeWidget* parent = nullptr);
215  virtual DtThemedTreeWidgetItem* create(QTreeWidgetItem* parent);
216 
217  static DtThemedTreeWidgetItemCreator& instance(makVrv::DtDe& de);
218  static void registerInstance(makVrv::DtDe& de, DtThemedTreeWidgetItemCreator*);
219 
220  protected:
222  };
223 
226  {
227  public:
228  DtThemedListWidgetItem(makVrv::DtDe& de, QListWidget* t = nullptr);
229 
230  virtual void manageIcon(const std::string&);
231  virtual void unmanageIcon();
232 
233  virtual QVariant data(int role) const override;
234 
235  protected:
236  std::string myManagedIcon;
238  };
239 
242  {
243  public:
246 
247  virtual DtThemedListWidgetItem* create(QListWidget* parent = nullptr);
248 
249  static DtThemedListWidgetItemCreator& instance(makVrv::DtDe& de);
250  static void registerInstance(makVrv::DtDe& de, DtThemedListWidgetItemCreator*);
251 
252  protected:
254  };
255 }
bool lastSelectHadControlKeyDown() const
Definition: treeWidget.h:126
QModelIndex indexFromItem(QTreeWidgetItem *item, int column=0) const
Definition: treeWidget.h:53
Definition: treeWidget.h:35
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
Registered creator for this class.
Definition: treeWidget.h:208
bool myDisableNameEditIfNotWindowsStyleEnabled
Definition: treeWidget.h:174
makVrv::DtDe & myDe
Definition: treeWidget.h:204
QSize mySizeHint
Definition: treeWidget.h:170
voidpf void uLong size
Definition: ioapi.h:39
bool allowWindowsStyleNameEdit() const
Support for editing (on items that support it) a single press, then, a single press on the item again...
Definition: treeWidget.h:102
makVrv::DtDe & myDe
Definition: treeWidget.h:167
QTreeWidgetItem * itemFromIndex(const QModelIndex &idx)
Definition: treeWidget.h:50
bool myNextReleaseMightBeEdit
Definition: treeWidget.h:171
virtual void setSizeHint(const QSize &s)
Sets the size hint in absence of minimum size.
Definition: treeWidget.h:63
bool allowEmptySelection() const
Definition: treeWidget.h:184
makVrv::DtDe & myDe
Definition: treeWidget.h:237
double myEditPressTime
Definition: treeWidget.h:166
std::string myManagedIcon
Definition: treeWidget.h:236
bool myLastSelectHadControlKeyDown
Definition: treeWidget.h:176
bool myMouseRightClick
Definition: treeWidget.h:163
Contains makVrv::DtVirtualBaseClass class.
bool myLastEditEventWasDoubleClick
Definition: treeWidget.h:173
bool disableNameEditIfNotWindowsStyleEnabled() const
Support for editing (on items that support it) a single press, then, a single press on the item again...
Definition: treeWidget.h:109
#define DT_DLL_VRFGUICOMMONQT
Definition: vrfGuiCommonQt.h:20
std::map< int, std::pair< std::string, QSize > > myManagedIcons
Definition: treeWidget.h:203
bool myAllowWindowsStyleNameEdit
Definition: treeWidget.h:165
static const int DtUserRoleForDoubleClickEdit
If in myAllowWindowsStyleNameEdit mode, set this user role in data column 0 to support double click e...
Definition: treeWidget.h:33
bool myEditingCanceled
Definition: treeWidget.h:168
bool myAllowEmptySelection
Definition: treeWidget.h:164
Allows for setting of icons that will switch with the theme.
Definition: treeWidget.h:190
Registered creator for this class.
Definition: treeWidget.h:241
QItemSelectionModel::SelectionFlags myLastSelectionCommand
Definition: treeWidget.h:175
Allows for setting of icons that will switch with the theme.
Definition: treeWidget.h:225
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
QTreeWidgetItem * myCheckForEditAfterTimer
Definition: treeWidget.h:172
makVrv::DtDe & myDe
Definition: treeWidget.h:253
void setAllowEmptySelection(bool)
Only valid in single selection mode.
Definition: treeWidget.h:179
QItemSelectionModel::SelectionFlags lastSelectionCommand() const
Definition: treeWidget.h:121
QSize myMinimumSizeHint
Definition: treeWidget.h:169
makVrv::DtDe & myDe
Definition: treeWidget.h:221
double editPressTime() const
Support for editing (on items that support it) a single press, then, a single press on the item again...
Definition: treeWidget.h:115
virtual bool editingCanceled() const
Definition: treeWidget.h:97

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)