VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
bdiQPropTreeItem.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2019 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
6 
10 
11 #pragma once
12 
13 #include <QDoubleSpinBox>
14 #include <QTreeWidget>
15 #include <QFocusEvent>
16 #include <QLineEdit>
17 #include <QColor>
18 
19 
20 class QColorGroup;
21 class QPainter;
22 class QRect;
23 namespace makVrv
24 {
25  class bdiQPropTree;
26  typedef unsigned long DWORD;
28  class bdiQPropTreeItem : public QObject, public QTreeWidgetItem
29  {
30  Q_OBJECT;
31  public:
32 
33  // Construction
36  bdiQPropTreeItem(QTreeWidget* lv, const char* name, const char* name2 = NULL);
37  bdiQPropTreeItem(QTreeWidgetItem* parent_item, const char* name = NULL, const char* name2 = NULL);
38 
39  virtual ~bdiQPropTreeItem();
40 
41  virtual bool hasCustomContents(void);
42  virtual bool hasCustomWidget(void);
43  virtual void drawCustomContents(QPainter *p, const QRect &r);
44  virtual void toggle() {
45  ;
46  }
47  virtual void setFontSize(int fsize);
48  virtual void updateFromSource() { ; }
49 
50  // Attributes/Operations
51  public:
52  // TreeItem states
53  bool IsReadOnly();
54 
55  bool IsEnabled();
56  virtual bool isBold() {
57  return 0;
58  }
59 
60  virtual QWidget* getWidget();
61  virtual void updateWidgetColors() {
62  ;
63  }
64 
65  void placeEditor(QWidget *w);
66  void removeEditor();
67 
68  //void Select(bool bSelect = true);
69  void Expand(bool bExpand = true);
70  void ExpandRecursive(bool bExpand = true);
71  void ReadOnly(bool bReadOnly = true);
72  void setEnabled(bool bEnable = true);
73  void setEnabledRecursive(bool bEnable, bool skip_current);
74 
75  // Returns true if the item is on the root level. Root level items don't have attribute areas
76  bool IsRootLevel();
77 
78  // Set the items label text
79  void setLabelText(const char* sLabel);
80  void setLabelText(const QString& sLabel);
81 
82  // Return the items label text
83  const QString& getLabelText();
84 
85  // Set the items info (description) text
86  void setInfoText(const char* sInfo);
87 
88  // Get the items info (description) text
89  const QString& getInfoText();
90 
91  // call to mark attribute changes
92  void CommitChanges();
93 
94  //
95  // Overrideables
96  //
97 
98  // Retrieve the item's attribute value
99  virtual void* getItemValue();
100 
101  // Set the item's attribute value
102  virtual void setDataPtr(void* lParam, int do_commit = 1);
103 
104  // Set the item's text
105  virtual void setItemText(const QString &text);
106 
107  // Called when the item needs to refresh its data
108  virtual void onRefresh();
109 
110  // Called when the item needs to commit its changes
111  virtual void onCommit();
112 
113  virtual void showEditor();
114  virtual void hideEditor();
115  virtual int isEditorShown() {
116  return true;
117  }
118 
119  //
120  // Usually only bdiQPropTree should calls these
121  //
122 
123  void SetPropOwner(bdiQPropTree* pProp);
124 
125  // TreeItem link QPointer access
126 
129 
130  bdiQPropTreeItem* getChildItem(int child = 0);
132 
133  void insertChildItem(int index, QTreeWidgetItem* item);
134 
135  void setRefreshParent(const bool refresh) {
136  m_bRefresh_parent = refresh;
137  }
138  void setRefreshTree(const bool refresh) {
139  m_bRefresh_tree = refresh;
140  }
141 
142  void setOpen(bool o);
143  void closeEditorRecursive();
144 
145  virtual void selectItem();
146 
147  virtual void set_var_script(const QString& var_script) {
148  m_set_var_script = var_script;
149  }
150  const QString& get_var_script() {
151  return m_set_var_script;
152  }
153 
155  return m_pProp;
156  }
157  void setPropTree(bdiQPropTree* pProp) {
158  m_pProp = pProp;;
159  }
160 
161 
162  virtual void update_ui_recursive();
163  void set_value_edited_tracker(int* value) {
164  m_pvalue_edited = value;
165  }
167  return m_pvalue_edited;
168  }
170  if (m_pvalue_edited) {
171  *m_pvalue_edited = 1;
172  }
173  }
174  signals:
175 
176  void signal_set_var_script(const QString& script);
177  void signal_onCommit();
178  void signal_onRefresh();
179 
180  protected:
181 
182  // bdiQPropTree class that this class belongs
184 
185  // TreeItem label name
186  QString m_sLabel;
187 
188  // Descriptive info text
189  QString m_sInfo;
190 
191  // user defined void* value
192  void* m_lParam;
193 
194  // call on refresh on parent
196 
197  // call on refresh on parent
199 
201 
203 
204  protected:
205 
206  QColor backColor;
207 
208  protected:
209 
210  // TreeItem state
212  {
213  TreeItemActivated = 0x00000001,
214  TreeItemReadOnly = 0x00000002,
215  TreeItemEnabled = 0x00000004
216  };
218 
219  private:
220 
221  // true if item is activated
223 
224  // true if item has been commited once (activation)
226 
227  };
228 
229 
233  {
234  public:
235 
236  bdiQPropTreeLineEdit(QWidget* parent, bdiQPropTreeItem* pitem)
237  : QLineEdit(parent)
238  , m_parent(pitem)
239  {
240  setMaximumSize(10000, 18);
241 
242  }
243 
244  bdiQPropTreeLineEdit(const QString &contents, QWidget* parent, bdiQPropTreeItem* pitem)
245  : QLineEdit(contents, parent)
246  , m_parent(pitem)
247  {
248  }
249 
251  {
252  m_parent = NULL;
253  }
254 
255  void focusOutEvent(QFocusEvent*);
256 
257  private:
258 
260 
261  };
262 
263 
267  {
268  public:
269 
270  bdiQPropTreeDoubleSpinBox(QWidget* parent, bdiQPropTreeItem* pitem, const char* name = 0)
271  : QDoubleSpinBox(parent)
272  , m_parent(pitem)
273  {
274  setObjectName(QString::fromUtf8(name));
275  setMaximumSize(10000, 16);
276  }
277 
279 
280  void focusOutEvent(QFocusEvent*);
281 
282  private:
283 
285 
286  };
287 }
void setEnabledRecursive(bool bEnable, bool skip_current)
virtual void set_var_script(const QString &var_script)
Definition: bdiQPropTreeItem.h:147
void Expand(bool bExpand=true)
bdiQPropTreeItem * parentItem()
bdiQPropTreeItem * m_parent
Definition: bdiQPropTreeItem.h:259
virtual void drawCustomContents(QPainter *p, const QRect &r)
virtual void hideEditor()
bdiQPropTreeItem * m_parent
Definition: bdiQPropTreeItem.h:284
virtual bool hasCustomContents(void)
virtual void showEditor()
Helper class for dealing with focus outs and line edits.
Definition: bdiQPropTreeItem.h:232
QString m_set_var_script
Definition: bdiQPropTreeItem.h:200
virtual void update_ui_recursive()
virtual void updateFromSource()
Definition: bdiQPropTreeItem.h:48
const QString & getLabelText()
QString m_sLabel
Definition: bdiQPropTreeItem.h:186
void ReadOnly(bool bReadOnly=true)
QString m_sInfo
Definition: bdiQPropTreeItem.h:189
void setPropTree(bdiQPropTree *pProp)
Definition: bdiQPropTreeItem.h:157
void flag_value_editted()
Definition: bdiQPropTreeItem.h:169
virtual void toggle()
Definition: bdiQPropTreeItem.h:44
virtual void setItemText(const QString &text)
int * m_pvalue_edited
Definition: bdiQPropTreeItem.h:202
bdiQPropTree * m_pProp
Definition: bdiQPropTreeItem.h:183
Definition: bdiQPropTreeItem.h:28
bool m_bRefresh_parent
Definition: bdiQPropTreeItem.h:195
virtual ~bdiQPropTreeLineEdit()
Definition: bdiQPropTreeItem.h:250
void setRefreshTree(const bool refresh)
Definition: bdiQPropTreeItem.h:138
DWORD m_dwState
Definition: bdiQPropTreeItem.h:217
Helper class for dealing with focus outs and line edits.
Definition: bdiQPropTreeItem.h:266
QColor backColor
Definition: bdiQPropTreeItem.h:206
void placeEditor(QWidget *w)
virtual bool hasCustomWidget(void)
virtual int isEditorShown()
Definition: bdiQPropTreeItem.h:115
void focusOutEvent(QFocusEvent *)
void setInfoText(const char *sInfo)
bdiQPropTreeDoubleSpinBox(QWidget *parent, bdiQPropTreeItem *pitem, const char *name=0)
Definition: bdiQPropTreeItem.h:270
bdiQPropTree * getPropTree()
Definition: bdiQPropTreeItem.h:154
bdiQPropTreeItem * getChildItem(int child=0)
bdiQPropTreeItem * GetLastChild()
void focusOutEvent(QFocusEvent *)
virtual QWidget * getWidget()
void ExpandRecursive(bool bExpand=true)
Definition: bdiQPropTreeItem.h:215
void setRefreshParent(const bool refresh)
Definition: bdiQPropTreeItem.h:135
TreeItemStates
Definition: bdiQPropTreeItem.h:211
virtual void updateWidgetColors()
Definition: bdiQPropTreeItem.h:61
virtual void onRefresh()
virtual void selectItem()
virtual void setDataPtr(void *lParam, int do_commit=1)
unsigned long DWORD
Definition: bdiQPropTreeItem.h:25
void * m_lParam
Definition: bdiQPropTreeItem.h:192
int * get_value_edited_tracker()
Definition: bdiQPropTreeItem.h:166
void SetPropOwner(bdiQPropTree *pProp)
const QString & getInfoText()
bool m_bActivated
Definition: bdiQPropTreeItem.h:222
virtual ~bdiQPropTreeDoubleSpinBox()
Definition: bdiQPropTreeItem.h:278
bdiQPropTreeLineEdit(QWidget *parent, bdiQPropTreeItem *pitem)
Definition: bdiQPropTreeItem.h:236
void signal_set_var_script(const QString &script)
virtual void * getItemValue()
bool m_bRefresh_tree
Definition: bdiQPropTreeItem.h:198
bdiQPropTreeItem * GetSibling()
bdiQPropTreeLineEdit(const QString &contents, QWidget *parent, bdiQPropTreeItem *pitem)
Definition: bdiQPropTreeItem.h:244
void insertChildItem(int index, QTreeWidgetItem *item)
void setEnabled(bool bEnable=true)
Definition: bdiQPropTreeItem.h:214
const QString & get_var_script()
Definition: bdiQPropTreeItem.h:150
virtual bool isBold()
Definition: bdiQPropTreeItem.h:56
Definition: bdiQPropTreeItem.h:213
bool m_bCommitOnce
Definition: bdiQPropTreeItem.h:225
void setLabelText(const char *sLabel)
virtual void setFontSize(int fsize)
void set_value_edited_tracker(int *value)
Definition: bdiQPropTreeItem.h:163
virtual void onCommit()
Definition: bdiQPropTree.h:51

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)