VR-Forces 5.0.3 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 
14 
16 #include <vrvCore/DtSimEntry.h>
17 #include <boost/signals2.hpp>
18 
19 #include <QWidget>
20 #include <QTreeWidget>
21 
22 class QComboBox;
23 class QVBoxLayout;
24 class QCheckBox;
25 class QPushButton;
26 class QToolButton;
27 class QTextEdit;
28 class QLabel;
29 class QLineEdit;
30 class QHBoxLayout;
31 class DtSimCondExpr;
32 class QGridLayout;
33 class QSpacerItem;
34 class QSplitter;
35 
36 namespace makVrv
37 {
38  class DtSimObjectEntry;
39  class DtDe;
40 }
41 
42 namespace makVrf
43 {
44  class DtConditionalExpressionViewItem;
45  class DtConditionalExpressionInterface;
46 
50  {
51  Q_OBJECT
52 
53  public:
54  //CTOR
55  DtConditionalExpressionView(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, bool partOfGlobalPlan = false,
56  bool validOnlyForSyncMatrix = false);
57 
58  //DTOR
59  virtual ~DtConditionalExpressionView();
60 
61  virtual void setupGui(const std::vector<makVrv::DtSimEntry*>& data);
62 
64  virtual void enable();
65  virtual void disable();
66 
67  virtual void setupFromExpression(const DtSimCondExpr* expr, const std::vector<makVrv::DtSimEntry*>& data);
68 
70  virtual DtSimCondExpr* conditionalExpression();
71 
72  virtual QString statementDescription() const;
73  virtual void setStatementDescription(const QString&);
74 
76  virtual void setShowDescription(bool);
77 
79  virtual DtConditionalExpressionViewItem* addConditionalRow(QTreeWidgetItem* after = 0);
80 
82  virtual void removeRow(DtConditionalExpressionViewItem*);
83 
84  QTreeWidget* conditionalsTree() const { return myConditionalsTree; };
85  virtual void validateOk();
86 
87  boost::signals2::signal<void ()> signal_conditionComplete;
88  boost::signals2::signal<void ()> signal_conditionIncomplete;
89  boost::signals2::signal<void ()> signal_conditionCancelled;
90 
91  boost::signals2::signal<void ()> signal_enable;
92  boost::signals2::signal<void ()> signal_disable;
93 
94  protected slots:
95  virtual void onItemCollapsed(QTreeWidgetItem*);
96 
97  protected:
100  virtual void slot_onSimDataRemoved(makVrv::DtSimObjectEntry&);
101 
102  virtual void conditionsChanged();
103 
104  virtual void removeOnTick(DtConditionalExpressionViewItem*);
105 
106  public:
107  QVBoxLayout* myMasterLayout;
109  QTextEdit* myConditionText;
112  QHBoxLayout* myDescriptionLayout;
114  QSplitter* mySplitter;
115 
116  protected:
118  std::vector<makVrv::DtSimEntry*> mySelectedData;
122  };
123 
126  {
127  Q_OBJECT
128 
129  public:
131  QTreeWidget* parent, bool partOfGlobalPlan, bool validOnlyForSyncMatrix, const std::vector<makVrv::DtSimEntry*>&);
133  QTreeWidgetItem*, bool partOfGlobalPlan, bool validOnlyForSyncMatrix, const std::vector<makVrv::DtSimEntry*>&);
134 
136 
138  virtual QComboBox* createConditionalComboBox(bool compoundOnly) const;
139 
141  virtual void setup(bool compoundOnly = false);
142 
144  virtual bool isComplete() const;
145 
147  virtual DtSimCondExpr* condition();
148 
150  virtual bool isNot() const;
151 
152  virtual void setCanRemove(bool);
153  virtual void setRemoveEnabled(bool);
154  virtual void setEditEnabled(bool);
155 
156  virtual void setupFromExpression(const DtSimCondExpr* expr);
157 
158  virtual void setItemParent(DtConditionalExpressionViewItem*);
159  virtual DtConditionalExpressionViewItem* itemParent() const;
160 
161  virtual void addButton(QToolButton*);
162  virtual void removeButton(QToolButton*);
163 
164  DtConditionalExpressionView* conditionalExpressionView() { return myParent; };
165 
166  boost::signals2::signal<void ()> signal_conditionChanged;
167  boost::signals2::signal<void (DtConditionalExpressionViewItem*)> signal_removeRow;
168 
169  public slots:
170  virtual void conditionalTypeChanged();
171 
172  protected:
173  virtual void slot_conditionComplete();
174  virtual void slot_conditionCancelled();
175  virtual bool setupExpressionForConditional(const std::string& conditional,
176  const DtSimCondExpr* expression);
177  virtual void resetToEmpty();
178 
179  protected slots:
180  virtual void editConditional();
181  virtual void onNotChanged();
182  virtual void removeRow();
183 
184  protected:
185  struct Conditional
186  {
187  Conditional() : notCombo(nullptr), conditionalCanvas(nullptr), conditionalCombo(nullptr), editSpacer(nullptr), removeSpacer(nullptr), edit(nullptr), remove(nullptr) {};
188  QComboBox* notCombo;
191  QGridLayout* controlsLayout;
193  QSpacerItem* editSpacer;
194 
195  QToolButton* remove;
196  QSpacerItem* removeSpacer;
197  };
198 
203  std::vector<makVrv::DtSimEntry*> mySelectedData;
212  };
213 
215  {
216  public:
219 
221  static void registerInstance(makVrv::DtDe&, DtConditionalExpressionViewItemCreator*);
222 
224  bool partOfGlobalPlan, bool validOnlyForSyncMatrix, const std::vector<makVrv::DtSimEntry*>&);
225 
226  protected:
228  };
229 }
DtSimCondExpr * myConditionalExpression
Definition: conditionalExpressionView.h:208
Definition: conditionalExpressionView.h:185
makVrv::DtDe & myDe
Definition: conditionalExpressionView.h:117
bool myPartOfGlobalPlan
Definition: conditionalExpressionView.h:201
bool myValidOnlyForSyncMatrix
Definition: conditionalExpressionView.h:120
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:207
QTreeWidget * conditionalsTree() const
Definition: conditionalExpressionView.h:84
boost::signals2::signal< void()> signal_conditionIncomplete
Definition: conditionalExpressionView.h:88
boost::signals2::signal< void()> signal_conditionComplete
Definition: conditionalExpressionView.h:87
QGridLayout * controlsLayout
Definition: conditionalExpressionView.h:191
Definition: conditionalExpressionView.h:214
Definition: conditionalExpressionInterface.h:79
QWidget * conditionalCanvas
Definition: conditionalExpressionView.h:189
QWidget * myConditionalCanvas
Definition: conditionalExpressionView.h:113
QToolButton * edit
Definition: conditionalExpressionView.h:192
QLabel * myShortDescriptionLabel
Definition: conditionalExpressionView.h:110
std::string myCurrentConditionalType
Definition: conditionalExpressionView.h:210
bool myCanRemove
Definition: conditionalExpressionView.h:211
QTextEdit * myConditionText
Definition: conditionalExpressionView.h:109
DtConditionalExpressionViewItem represents a single conditional expression.
Definition: conditionalExpressionView.h:125
boost::signals2::signal< void()> signal_enable
Definition: conditionalExpressionView.h:91
makVrv::DtDe & myDe
Definition: conditionalExpressionView.h:227
QVBoxLayout * myMasterLayout
Definition: conditionalExpressionView.h:107
QTreeWidget * myConditionalsTree
Definition: conditionalExpressionView.h:108
DtConditionalExpressionInterface * myExpression
Definition: conditionalExpressionView.h:204
Contains makVrv::DtVirtualBaseClass class.
Contains makVrv::DtSimEntry class.
std::vector< makVrv::DtSimEntry * > mySelectedData
Definition: conditionalExpressionView.h:118
bool myValidOnlyForSyncMatrix
Definition: conditionalExpressionView.h:202
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
DtSimCondExpr * myConditionalExpression
Definition: conditionalExpressionView.h:121
makVrv::DtDe & myDe
Definition: conditionalExpressionView.h:200
Conditional myConditional
Definition: conditionalExpressionView.h:199
std::vector< makVrv::DtSimEntry * > mySelectedData
Definition: conditionalExpressionView.h:203
QComboBox * conditionalCombo
Definition: conditionalExpressionView.h:190
DtConditionalExpressionInterface * myCurrentExpression
Definition: conditionalExpressionView.h:205
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan...
Definition: simCondExpr.h:53
QHBoxLayout * myDescriptionLayout
Definition: conditionalExpressionView.h:112
QSpacerItem * editSpacer
Definition: conditionalExpressionView.h:193
boost::signals2::signal< void()> signal_disable
Definition: conditionalExpressionView.h:92
QSplitter * mySplitter
Definition: conditionalExpressionView.h:114
QLineEdit * myShortDescription
Definition: conditionalExpressionView.h:111
boost::signals2::signal< void(DtConditionalExpressionViewItem *)> signal_removeRow
Definition: conditionalExpressionView.h:167
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
int myCurrentExpressionIndex
Definition: conditionalExpressionView.h:206
DtConditionalExpressionViewItem * myItemParent
Definition: conditionalExpressionView.h:209
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
QSpacerItem * removeSpacer
Definition: conditionalExpressionView.h:196
DtConditionalExpressionView is the view that is used to create and modify conditional expressions...
Definition: conditionalExpressionView.h:49
boost::signals2::signal< void()> signal_conditionCancelled
Definition: conditionalExpressionView.h:89
bool myPartOfGlobalPlan
Definition: conditionalExpressionView.h:119

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)