VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
taskSetVariableWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #ifdef WIN32
14  #if !defined(_DEBUG)
15  #define QT_NO_DEBUG
16  #endif
17 #else
18  #define QT_NO_DEBUG
19 #endif
20 
21 #include <vrvUtil/signalslib.h>
23 #include <vrvCore/DtSimEntry.h>
25 #include <vrvUtil/DtUnicode.h>
26 #include <boost/signals2.hpp>
27 
29 #include <QtWidgets/QWidget>
30 
31 #define CHECK_AND_CONVERT(variable, function) if (variable == 0xFFFFFFFF) variable = myRange.variable(); else variable = function(variable);
32 
33 class DtString;
34 class QSpacerItem;
35 class QVBoxLayout;
36 class QLabel;
37 class QFrame;
38 class QGridLayout;
39 class QHBoxLayout;
40 class DtReaderWriter;
41 class QRadioButton;
42 class QDomElement;
43 class QDesignerFormEditorInterface;
44 class QXmlStreamWriter;
46 
47 namespace makVrv
48 {
49  class DtDe;
50 }
51 
52 namespace makVrf
53 {
54  class DtScriptedTaskVariableLayoutConverter;
55  class DtScriptedTaskDialog;
56 
58  {
59  Q_OBJECT
60  Q_PROPERTY(qreal top READ top WRITE setTop)
61  Q_PROPERTY(qreal bottom READ bottom WRITE setBottom)
62 
63  public:
64  DtRange() : myBottom(-100000.), myTop(100000) {};
65  DtRange(const DtRange& orig) : myBottom(orig.myBottom), myTop(orig.myTop) {};
66  DtRange& operator=(const DtRange& rhs) { myBottom = rhs.myBottom; myTop = rhs.myTop; return *this; };
67 
68  qreal top() const { return myTop; };
69  qreal bottom() const { return myBottom; };
70  void setTop(qreal t) { myTop = t; };
71  void setBottom(qreal b) { myBottom = b; };
72 
73  public:
74  double myTop;
75  double myBottom;
76  };
77 
81  {
82  public:
83  DtTaskSetVariableWidgetExtensionInterface(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
85 
88  virtual int setFrom(const DtScriptedTaskVariable&, QGridLayout* parentLayout, int startRow) = 0;
89 
91  virtual void setTo(DtScriptedTaskVariable&) const = 0;
92 
94  virtual bool isValid()
95  {
96  return true;
97  }
98 
100  virtual void setReadOnly(bool) = 0;
101 
102  protected:
104  };
105 
113  {
114  public:
116  {
117  NormalMode = 0x00000000,
118  QtDesignerMode = 0x00000001
119  };
120 
122 
123  //DTOR
125 
128  virtual void setLabel(const std::string&) = 0;
129  virtual void setLabel(const QString&) = 0;
130 
132  virtual void setToolTip(const QString&) = 0;
133 
135  virtual void setTopLineVisible(bool)
136  {
137  }
138 
139  virtual bool topLineVisible() const
140  {
141  return false;
142  }
143 
145  virtual bool isValid() const = 0;
146 
151  virtual void setRange(double bottom, double top) = 0;
152 
154  virtual void setDefaultValue(const std::string&) = 0;
155 
158  virtual void setVariableData(const std::string&) = 0;
159 
161  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data) = 0;
162 
164  virtual DtReaderWriter* createBoundVariable(const std::string& variableName) = 0;
165 
167  virtual void setupFromBoundVariable(const DtReaderWriter* variableName) = 0;
168 
170  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(QWidget* parent, const Qt::WindowFlags& flags = 0) const
171  {
172  return 0;
173  }
174 
176  virtual bool guiElementOnly() const
177  {
178  return false;
179  }
180 
182  static bool canBeUsedAsWidget()
183  {
184  return true;
185  }
186 
188  virtual void setIndent(int) = 0;
189 
191  virtual std::string variableDataFromUiDesigner(const QDomElement&, const DtScriptedTaskVariableLayoutConverter&) const = 0;
192 
194  static void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core)
195  {
196  }
197 
198  static bool includeInQtDesigner()
199  {
200  return true;
201  }
202 
205  virtual std::string scriptedTaskVariableName() const = 0;
207 
209  virtual void widgetInitializedForDialog(DtScriptedTaskDialog*, const std::vector<makVrv::DtSimEntry*>& data)
210  {
211  }
212  };
213 
216  {
217  Q_OBJECT
218  Q_PROPERTY(QString label READ label WRITE setLabel)
219  Q_PROPERTY(bool isInternal READ isInternal WRITE setIsInternal)
220  Q_PROPERTY(int indent READ indent WRITE setIndent)
221  Q_PROPERTY(QString variableData READ variableData WRITE setVariableData DESIGNABLE false)
222 
223  public:
224  DtTaskSetVariableWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
225 
226  //DTOR
227  virtual ~DtTaskSetVariableWidget();
228 
230  virtual void setToolTip(const QString&);
231 
234  virtual void setLabel(const std::string&);
235 
237  virtual void setLabel(const QString&);
238 
240  virtual void setVariableData(const std::string&);
241 
243  virtual void setVariableData(const QString&);
244  virtual QString variableData() const;
245 
246  virtual QString label() const;
247 
249  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data);
250 
252  virtual void setIsInternal(bool);
253  virtual bool isInternal() const;
254 
256  virtual void setTopLineVisible(bool);
257  virtual bool topLineVisible() const;
258 
260  virtual void createTopLine();
261 
264  virtual void setIndent(int);
265  virtual int indent() const;
266 
268  virtual bool isValid() const;
269 
271  virtual void setTopLabelChecked(bool);
272  virtual bool topLabelChecked() const;
273 
275  virtual void setRange(double, double)
276  {
277  }
278 
279  virtual void setRange(const DtRange&);
280  virtual void setRangeTop(double);
281  virtual void setRangeTop(int);
282  virtual double rangeTop() const;
283 
284  virtual void setRangeBottom(double);
285  virtual void setRangeBottom(int);
286  virtual double rangeBottom() const;
287 
288  virtual const DtRange& getRange() const;
289 
292  virtual void setTopLabelIsCheckable(bool);
293  virtual bool topLabelIsCheckable() const;
294  virtual void getDefaultSpecificTitles(QString& defaultTitle, QString& specificTitle) const;
295  virtual void setDefaultSpecificTitles(const QString& defaultTitle, const QString& specificTitle);
296 
298  virtual void setupDefaultSpecificFromVariableData(const DtString& var);
299 
300  boost::signals2::signal<void (bool)> signal_topLevelCheckStateChanged;
301 
302  static bool includeInQtDesigner()
303  {
304  return true;
305  }
306 
307  virtual std::string variableDataFromUiDesigner(const QDomElement&, const DtScriptedTaskVariableLayoutConverter&) const;
308 
309  virtual std::string scriptedTaskVariableName() const;
310 
311  signals:
312 
315  void validityUpdated();
316 
317  protected slots:
318  virtual void topLabelCheckStateChanged();
319 
320  protected:
327 
328  QString myVariableData;
329 
330  public:
331  int myIndent;
333  QHBoxLayout* mySpacedLayout;
334 
337  QWidget* myTopLine;
339  QWidget* myChoiceCanvas;
340  QRadioButton* myUseDefault;
341  QRadioButton* myUseSpecific;
342  QSpacerItem* myTopSeparator;
343  QHBoxLayout* myTopLineLayout;
344  QSpacerItem* mySpacerItem;
345  };
346 
348 
350  {
351  public:
353  {
354  };
355 
356  virtual DtTaskSetVariableWidgetInterface* create(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0,
358 
359  virtual makVrv::DtUnicode codeVariableType() const = 0;
360  virtual std::string className() const = 0;
361 
362  virtual bool canBeUsedAsWidget() const = 0;
363 
366 
368  virtual std::string designerIcon() const
369  {
370  return "../data/images/icons/Simulate_FrontEnd_Icon.ico";
371  }
372 
374  virtual std::string designerGroup() const = 0;
375 
377  virtual std::string headerFile() const = 0;
378 
380  virtual std::string variableName() const = 0;
381 
383  virtual bool includeInDesigner() const = 0;
384 
387  virtual void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core) = 0;
388 
390  };
391 
392  template <typename _Class>
394  {
395  public:
397 
399  {
400  };
401 
402  virtual DtTaskSetVariableWidgetInterface* create(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0,
404  {
405  return new _Class(de, parent, flags, cflags);
406  }
407 
409  {
410  return _Class::codeVariableType();
411  }
412 
413  virtual std::string className() const
414  {
415  return _Class::staticMetaObject.className();
416  }
417 
418  virtual std::string designerGroup() const
419  {
420  return _Class::designerGroup();
421  }
422 
423  virtual std::string headerFile() const
424  {
425  return _Class::headerFile();
426  }
427 
428  virtual std::string variableName() const
429  {
430  return _Class::variableName();
431  }
432 
433  virtual bool canBeUsedAsWidget() const
434  {
435  return _Class::canBeUsedAsWidget();
436  }
437 
438  virtual bool includeInDesigner() const
439  {
440  return _Class::includeInQtDesigner();
441  }
442 
445  virtual void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core)
446  {
447  _Class::initializeForQtDesignerExtension(de, core);
448  }
449  };
450 }
QVBoxLayout * myVariableContentLayout
When creating subclasses of this item, use the variable content layout to add your content...
Definition: taskSetVariableWidget.h:336
QSpacerItem * myTopSeparator
Definition: taskSetVariableWidget.h:342
virtual bool topLineVisible() const
Definition: taskSetVariableWidget.h:139
A unicode string.
Definition: DtUnicode.h:33
virtual ~DtTaskSetVariableWidgetCreator()
Definition: taskSetVariableWidget.h:398
QLabel * myTopLabel
Definition: taskSetVariableWidget.h:338
virtual bool canBeUsedAsWidget() const
Definition: taskSetVariableWidget.h:433
CreationFlags
Definition: taskSetVariableWidget.h:115
virtual std::string designerIcon() const
Used for Qt Designer plugins.
Definition: taskSetVariableWidget.h:368
virtual std::string variableName() const
The default variable nameto initially assign to this object.
Definition: taskSetVariableWidget.h:428
makVrv::DtDe & myDe
Definition: taskSetVariableWidget.h:321
qreal top() const
Definition: taskSetVariableWidget.h:68
This class will parse the UI file for known scripted task variable types and pull out specified scrip...
Definition: scriptedTaskVariableLayoutConverter.h:32
Definition: taskSetVariableWidget.h:117
virtual ~DtTaskSetVariableWidgetInterface()
Definition: taskSetVariableWidget.h:124
DtTaskSetVariableWidgetCreator()
Definition: taskSetVariableWidget.h:396
Definition: readerWriter.h:85
QRadioButton * myUseDefault
Definition: taskSetVariableWidget.h:340
QHBoxLayout * myTopLineLayout
Definition: taskSetVariableWidget.h:343
QVBoxLayout * myVariableWidgetLayout
Definition: taskSetVariableWidget.h:332
void setBottom(qreal b)
Definition: taskSetVariableWidget.h:71
static bool includeInQtDesigner()
Definition: taskSetVariableWidget.h:302
virtual void initializeForQtDesignerExtension(makVrv::DtDe &de, QDesignerFormEditorInterface *core)
Called when initializing widget for potential Qt Designer plugin usage.
Definition: taskSetVariableWidget.h:445
DtTaskSetVariableWidgetInterface()
Definition: taskSetVariableWidget.h:121
This class will created a dialog from scripted task meta data and send that information to the back-e...
Definition: scriptedTaskDialog.h:57
virtual DtTaskSetVariableWidgetExtensionInterface * parameterContents(QWidget *parent, const Qt::WindowFlags &flags=0) const
If there are any, returns contents for this variable for variable extension. Default is no extension...
Definition: taskSetVariableWidget.h:170
double myBottom
Definition: taskSetVariableWidget.h:75
QRadioButton * myUseSpecific
Definition: taskSetVariableWidget.h:341
Basic implementation that has a label at the top.
Definition: taskSetVariableWidget.h:215
qreal bottom() const
Definition: taskSetVariableWidget.h:69
Contains makVrv::DtSimEntry class.
virtual void widgetInitializedForDialog(DtScriptedTaskDialog *, const std::vector< makVrv::DtSimEntry * > &data)
Called when the widget is initialized from a scripted task dialog. Default implementation is to do no...
Definition: taskSetVariableWidget.h:209
QWidget * myTopLine
Definition: taskSetVariableWidget.h:337
Definition: taskSetVariableWidget.h:393
boost::signals2::signal< void(bool)> signal_topLevelCheckStateChanged
Definition: taskSetVariableWidget.h:300
int myIndent
Definition: taskSetVariableWidget.h:331
This class will define the interface needed for being a task set variable that can be used in task di...
Definition: taskSetVariableWidget.h:112
virtual ~DtTaskSetVariableWidgetCreatorInterface()
Definition: taskSetVariableWidget.h:352
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
makVrv::DtDe & myDe
Definition: taskSetVariableWidget.h:103
bool myTopLabelIsCheckable
Definition: taskSetVariableWidget.h:323
A class for keeping track of meta data for variables of scripted tasks.
Definition: scriptedTaskVariable.h:31
virtual std::string designerGroup() const
The designer group that this is going into.
Definition: taskSetVariableWidget.h:418
#define DT_DLL_VRFGUIDATAENTRYWIDGETS
Definition: vrfGuiDataEntryWidgets.h:23
virtual std::string className() const
Definition: taskSetVariableWidget.h:413
void setTop(qreal t)
Definition: taskSetVariableWidget.h:70
virtual bool guiElementOnly() const
Returns true if this is a GUI element only. Default is false.
Definition: taskSetVariableWidget.h:176
bool myIsInternal
Definition: taskSetVariableWidget.h:325
static bool includeInQtDesigner()
Definition: taskSetVariableWidget.h:198
DtRange myRange
Definition: taskSetVariableWidget.h:324
virtual bool includeInDesigner() const
Include this class in the designer plugin.
Definition: taskSetVariableWidget.h:438
Definition: taskSetVariableWidget.h:57
double myTop
Definition: taskSetVariableWidget.h:71
Base class to provide boost signal/slot management.
QHBoxLayout * mySpacedLayout
Definition: taskSetVariableWidget.h:333
static bool canBeUsedAsWidget()
Whether or not this shows up as a usable variable widget.
Definition: taskSetVariableWidget.h:182
Creator class to be used when creating instances of task/set variables.
Definition: taskSetVariableWidget.h:349
QWidget * myChoiceCanvas
Definition: taskSetVariableWidget.h:339
virtual DtTaskSetVariableWidgetInterface * create(makVrv::DtDe &de, QWidget *parent, const Qt::WindowFlags &flags=0, const DtTaskSetVariableWidgetInterface::CreationFlags &cflags=DtTaskSetVariableWidgetInterface::NormalMode)
Definition: taskSetVariableWidget.h:402
makVrv::DtSignalConnectionManager myConnections
Definition: taskSetVariableWidget.h:322
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
virtual makVrv::DtUnicode codeVariableType() const
Definition: taskSetVariableWidget.h:408
virtual bool isValid()
Validity check for data entered.
Definition: taskSetVariableWidget.h:94
DtRange & operator=(const DtRange &rhs)
Definition: taskSetVariableWidget.h:66
virtual std::string headerFile() const
The header file to include when generating code.
Definition: taskSetVariableWidget.h:423
Extension interface for contents for definition of variables in the scripted task meta data variable ...
Definition: taskSetVariableWidget.h:80
static void initializeForQtDesignerExtension(makVrv::DtDe &de, QDesignerFormEditorInterface *core)
Implement at class level to perform Qt Designer custom widget initialization. Please refer to Qt docu...
Definition: taskSetVariableWidget.h:194
DtRange(const DtRange &orig)
Definition: taskSetVariableWidget.h:65
QSpacerItem * mySpacerItem
Definition: taskSetVariableWidget.h:344
virtual void setTopLineVisible(bool)
Hides top line.
Definition: taskSetVariableWidget.h:135
CreationFlags myCreationFlags
Definition: taskSetVariableWidget.h:326
QString myVariableData
Definition: taskSetVariableWidget.h:328

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)