VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
conditionalExpressionView.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 
17 
18 #include <boost/signals2.hpp>
19 
20 #include <QWidget>
21 #include <QTreeWidget>
22 
23 class QComboBox;
24 class QVBoxLayout;
25 class QCheckBox;
26 class QPushButton;
27 class QToolButton;
28 class QTextEdit;
29 class QLabel;
30 class QLineEdit;
31 class QHBoxLayout;
32 class DtSimCondExpr;
33 class QGridLayout;
34 class QSpacerItem;
35 class QSplitter;
36 
37 namespace makVrv
38 {
39 
40  class DtDe;
41 }
42 
43 namespace makVrf
44 {
45  class DtConditionalExpressionViewItem;
46  class DtConditionalExpressionInterface;
47 
51  {
52  Q_OBJECT
53 
54  public:
55  //CTOR
56  DtConditionalExpressionView(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, bool partOfGlobalPlan = false,
57  bool validOnlyForSyncMatrix = false);
58 
59  //DTOR
60  virtual ~DtConditionalExpressionView() override;
61 
62  virtual void setupGui(const std::set<makVrv::DtUniqueID>& data);
63 
65  virtual void enable();
66  virtual void disable();
67 
68  virtual void setupFromExpression(const DtSimCondExpr* expr, const std::set<makVrv::DtUniqueID>& data);
69 
71  virtual DtSimCondExpr* conditionalExpression();
72 
73  virtual QString statementDescription() const;
74  virtual void setStatementDescription(const QString&);
75 
77  virtual void setShowDescription(bool);
78 
80  virtual DtConditionalExpressionViewItem* addConditionalRow(QTreeWidgetItem* after = 0);
81 
83  virtual void removeRow(DtConditionalExpressionViewItem*);
84 
85  QTreeWidget* conditionalsTree() const { return myConditionalsTree; };
86  virtual void validateOk();
87 
88  boost::signals2::signal<void ()> signal_conditionComplete;
89  boost::signals2::signal<void ()> signal_conditionIncomplete;
90  boost::signals2::signal<void ()> signal_conditionCancelled;
91 
92  boost::signals2::signal<void ()> signal_enable;
93  boost::signals2::signal<void ()> signal_disable;
94 
95  protected slots:
96  virtual void onItemCollapsed(QTreeWidgetItem*);
97 
98  protected:
101  virtual void slot_onSimDataRemoved(DtSimObjectReference);
102 
103  virtual void conditionsChanged();
104 
105  virtual void removeOnTick(DtConditionalExpressionViewItem*);
106 
107  public:
108  QVBoxLayout* myMasterLayout;
110  QTextEdit* myConditionText;
113  QHBoxLayout* myDescriptionLayout;
115  QSplitter* mySplitter;
116 
117  protected:
119  std::set<makVrv::DtUniqueID> mySelectedData;
123  };
124 
127  {
128  Q_OBJECT
129 
130  public:
132  QTreeWidget* parent, bool partOfGlobalPlan, bool validOnlyForSyncMatrix, const std::set<makVrv::DtUniqueID>&);
134  QTreeWidgetItem*, bool partOfGlobalPlan, bool validOnlyForSyncMatrix, const std::set<makVrv::DtUniqueID>&);
135 
136  virtual ~DtConditionalExpressionViewItem() override;
137 
139  virtual QComboBox* createConditionalComboBox(bool compoundOnly) const;
140 
142  virtual void setup(bool compoundOnly = false);
143 
145  virtual bool isComplete() const;
146 
148  virtual DtSimCondExpr* condition();
149 
151  virtual bool isNot() const;
152 
153  virtual void setCanRemove(bool);
154  virtual void setRemoveEnabled(bool);
155  virtual void setEditEnabled(bool);
156 
157  virtual void setupFromExpression(const DtSimCondExpr* expr);
158 
159  virtual void setItemParent(DtConditionalExpressionViewItem*);
160  virtual DtConditionalExpressionViewItem* itemParent() const;
161 
162  virtual void addButton(QToolButton*);
163  virtual void removeButton(QToolButton*);
164 
165  DtConditionalExpressionView* conditionalExpressionView() { return myParent; };
166 
167  boost::signals2::signal<void ()> signal_conditionChanged;
168  boost::signals2::signal<void (DtConditionalExpressionViewItem*)> signal_removeRow;
169 
170  public slots:
171  virtual void conditionalTypeChanged();
172 
173  protected:
174  virtual void slot_conditionComplete();
175  virtual void slot_conditionCancelled();
176  virtual bool setupExpressionForConditional(const std::string& conditional,
177  const DtSimCondExpr* expression);
178  virtual void resetToEmpty();
179 
180  protected slots:
181  virtual void editConditional();
182  virtual void onNotChanged();
183  virtual void removeRow();
184 
185  protected:
186  struct Conditional
187  {
188  Conditional() : notCombo(nullptr), conditionalCanvas(nullptr), conditionalCombo(nullptr), editSpacer(nullptr), removeSpacer(nullptr), edit(nullptr), remove(nullptr) {};
189  QComboBox* notCombo;
192  QGridLayout* controlsLayout;
194  QSpacerItem* editSpacer;
195 
196  QToolButton* remove;
197  QSpacerItem* removeSpacer;
198  };
199 
204  std::set<makVrv::DtUniqueID> mySelectedData;
213  };
214 
216  {
217  public:
219  virtual ~DtConditionalExpressionViewItemCreator() override;
220 
222  static void registerInstance(makVrv::DtDe&, DtConditionalExpressionViewItemCreator*);
223 
225  bool partOfGlobalPlan, bool validOnlyForSyncMatrix, const std::set<makVrv::DtUniqueID>&);
226 
227  protected:
229  };
230 }
DtSimCondExpr * myConditionalExpression
Definition: conditionalExpressionView.h:209
Definition: conditionalExpressionView.h:186
makVrv::DtDe & myDe
Definition: conditionalExpressionView.h:118
bool myPartOfGlobalPlan
Definition: conditionalExpressionView.h:202
bool myValidOnlyForSyncMatrix
Definition: conditionalExpressionView.h:121
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtConditionalExpressionView * myParent
Definition: conditionalExpressionView.h:208
QTreeWidget * conditionalsTree() const
Definition: conditionalExpressionView.h:85
boost::signals2::signal< void()> signal_conditionIncomplete
Definition: conditionalExpressionView.h:89
boost::signals2::signal< void()> signal_conditionComplete
Definition: conditionalExpressionView.h:88
QGridLayout * controlsLayout
Definition: conditionalExpressionView.h:192
Definition: conditionalExpressionView.h:215
Definition: conditionalExpressionInterface.h:87
QWidget * conditionalCanvas
Definition: conditionalExpressionView.h:190
QWidget * myConditionalCanvas
Definition: conditionalExpressionView.h:114
QToolButton * edit
Definition: conditionalExpressionView.h:193
QLabel * myShortDescriptionLabel
Definition: conditionalExpressionView.h:111
std::string myCurrentConditionalType
Definition: conditionalExpressionView.h:211
bool myCanRemove
Definition: conditionalExpressionView.h:212
QTextEdit * myConditionText
Definition: conditionalExpressionView.h:110
DtConditionalExpressionViewItem represents a single conditional expression.
Definition: conditionalExpressionView.h:126
boost::signals2::signal< void()> signal_enable
Definition: conditionalExpressionView.h:92
makVrv::DtDe & myDe
Definition: conditionalExpressionView.h:228
QVBoxLayout * myMasterLayout
Definition: conditionalExpressionView.h:108
QTreeWidget * myConditionalsTree
Definition: conditionalExpressionView.h:109
DtConditionalExpressionInterface * myExpression
Definition: conditionalExpressionView.h:205
Contains makVrv::DtVirtualBaseClass class.
bool myValidOnlyForSyncMatrix
Definition: conditionalExpressionView.h:203
std::set< makVrv::DtUniqueID > mySelectedData
Definition: conditionalExpressionView.h:119
DtSimCondExpr * myConditionalExpression
Definition: conditionalExpressionView.h:122
makVrv::DtDe & myDe
Definition: conditionalExpressionView.h:201
Conditional myConditional
Definition: conditionalExpressionView.h:200
QComboBox * conditionalCombo
Definition: conditionalExpressionView.h:191
DtConditionalExpressionInterface * myCurrentExpression
Definition: conditionalExpressionView.h:206
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:53
QHBoxLayout * myDescriptionLayout
Definition: conditionalExpressionView.h:113
QSpacerItem * editSpacer
Definition: conditionalExpressionView.h:194
boost::signals2::signal< void()> signal_disable
Definition: conditionalExpressionView.h:93
QSplitter * mySplitter
Definition: conditionalExpressionView.h:115
QLineEdit * myShortDescription
Definition: conditionalExpressionView.h:112
boost::signals2::signal< void(DtConditionalExpressionViewItem *)> signal_removeRow
Definition: conditionalExpressionView.h:168
std::set< makVrv::DtUniqueID > mySelectedData
Definition: conditionalExpressionView.h:204
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:76
int myCurrentExpressionIndex
Definition: conditionalExpressionView.h:207
DtConditionalExpressionViewItem * myItemParent
Definition: conditionalExpressionView.h:210
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
QSpacerItem * removeSpacer
Definition: conditionalExpressionView.h:197
DtConditionalExpressionView is the view that is used to create and modify conditional expressions...
Definition: conditionalExpressionView.h:50
boost::signals2::signal< void()> signal_conditionCancelled
Definition: conditionalExpressionView.h:90
bool myPartOfGlobalPlan
Definition: conditionalExpressionView.h:120

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)