VR-Forces 4.7 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>
24 #include <vrvCore/DtDe.h>
25 #include <vrvCore/DtSimEntry.h>
27 
29 #include <QtWidgets/QWidget>
30 
31 class QSpacerItem;
32 class QVBoxLayout;
33 class QLabel;
34 class QFrame;
35 class QGridLayout;
36 class QHBoxLayout;
37 class DtReaderWriter;
38 class QRadioButton;
39 class QDomElement;
40 class QDesignerFormEditorInterface;
41 class QXmlStreamWriter;
42 class DtScriptedTaskDialog;
43 
44 namespace makVrf
45 {
46  class DtScriptedTaskVariableLayoutConverter;
47 
49  {
50  Q_OBJECT
51  Q_PROPERTY(qreal top READ top WRITE setTop)
52  Q_PROPERTY(qreal bottom READ bottom WRITE setBottom)
53 
54  public:
55  DtRange() : myBottom(-100000.), myTop(100000) {};
56  DtRange(const DtRange& orig) : myBottom(orig.myBottom), myTop(orig.myTop) {};
57  DtRange& operator=(const DtRange& rhs) { myBottom = rhs.myBottom; myTop = rhs.myTop; return *this; };
58 
59  qreal top() const { return myTop; };
60  qreal bottom() const { return myBottom; };
61  void setTop(qreal t) { myTop = t; };
62  void setBottom(qreal b) { myBottom = b; };
63 
64  public:
65  double myTop;
66  double myBottom;
67  };
68 
72  {
73  public:
74  DtTaskSetVariableWidgetExtensionInterface(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
76 
79  virtual int setFrom(const DtScriptedTaskVariable&, QGridLayout* parentLayout, int startRow) = 0;
80 
82  virtual void setTo(DtScriptedTaskVariable&) const = 0;
83 
85  virtual bool isValid()
86  {
87  return true;
88  }
89 
91  virtual void setReadOnly(bool) = 0;
92 
93  protected:
95  };
96 
104  {
105  public:
107  {
108  NormalMode = 0x00000000,
109  QtDesignerMode = 0x00000001
110  };
111 
113 
114  //DTOR
116 
119  virtual void setLabel(const std::string&) = 0;
120  virtual void setLabel(const QString&) = 0;
121 
123  virtual void setToolTip(const QString&) = 0;
124 
126  virtual void setTopLineVisible(bool)
127  {
128  }
129 
130  virtual bool topLineVisible() const
131  {
132  return false;
133  }
134 
136  virtual bool isValid() const = 0;
137 
142  virtual void setRange(double bottom, double top) = 0;
143 
145  virtual void setDefaultValue(const std::string&) = 0;
146 
149  virtual void setVariableData(const std::string&) = 0;
150 
152  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data) = 0;
153 
155  virtual DtReaderWriter* createBoundVariable(const std::string& variableName) = 0;
156 
158  virtual void setupFromBoundVariable(const DtReaderWriter* variableName) = 0;
159 
161  virtual DtTaskSetVariableWidgetExtensionInterface* parameterContents(QWidget* parent, const Qt::WindowFlags& flags = 0) const
162  {
163  return 0;
164  }
165 
167  virtual bool guiElementOnly() const
168  {
169  return false;
170  }
171 
173  static bool canBeUsedAsWidget()
174  {
175  return true;
176  }
177 
179  virtual void setIndent(int) = 0;
180 
182  virtual std::string variableDataFromUiDesigner(const QDomElement&, const DtScriptedTaskVariableLayoutConverter&) const = 0;
183 
185  static void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core)
186  {
187  }
188 
189  static bool includeInQtDesigner()
190  {
191  return true;
192  }
193 
196  virtual std::string scriptedTaskVariableName() const = 0;
198 
200  virtual void widgetInitializedForDialog(DtScriptedTaskDialog*)
201  {
202  }
203  };
204 
207  {
208  Q_OBJECT
209  Q_PROPERTY(QString label READ label WRITE setLabel)
210  Q_PROPERTY(bool isInternal READ isInternal WRITE setIsInternal)
211  Q_PROPERTY(int indent READ indent WRITE setIndent)
212  Q_PROPERTY(QString variableData READ variableData WRITE setVariableData DESIGNABLE false)
213 
214  public:
215  DtTaskSetVariableWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
216 
217  //DTOR
218  virtual ~DtTaskSetVariableWidget();
219 
221  virtual void setToolTip(const QString&);
222 
225  virtual void setLabel(const std::string&);
226 
228  virtual void setLabel(const QString&);
229 
231  virtual void setVariableData(const std::string&);
232 
234  virtual void setVariableData(const QString&);
235  virtual QString variableData() const;
236 
237  virtual QString label() const;
238 
240  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data);
241 
243  virtual void setIsInternal(bool);
244  virtual bool isInternal() const;
245 
247  virtual void setTopLineVisible(bool);
248  virtual bool topLineVisible() const;
249 
251  virtual void createTopLine();
252 
255  virtual void setIndent(int);
256  virtual int indent() const;
257 
259  virtual bool isValid() const;
260 
262  virtual void setTopLabelChecked(bool);
263  virtual bool topLabelChecked() const;
264 
266  virtual void setRange(double, double)
267  {
268  }
269 
270  virtual void setRange(const DtRange&);
271  virtual void setRangeTop(double);
272  virtual void setRangeTop(int);
273  virtual double rangeTop() const;
274 
275  virtual void setRangeBottom(double);
276  virtual void setRangeBottom(int);
277  virtual double rangeBottom() const;
278 
279  virtual const DtRange& getRange() const;
280 
283  virtual void setTopLabelIsCheckable(bool);
284  virtual bool topLabelIsCheckable() const;
285  virtual void getDefaultSpecificTitles(QString& defaultTitle, QString& specificTitle) const;
286  virtual void setDefaultSpecificTitles(const QString& defaultTitle, const QString& specificTitle);
287 
289  virtual void setupDefaultSpecificFromVariableData(const DtString& var);
290 
291  boost::signal<void (bool)> signal_topLevelCheckStateChanged;
292 
293  static bool includeInQtDesigner()
294  {
295  return true;
296  }
297 
298  virtual std::string variableDataFromUiDesigner(const QDomElement&, const DtScriptedTaskVariableLayoutConverter&) const;
299 
300  virtual std::string scriptedTaskVariableName() const;
301 
302  signals:
303 
306  void validityUpdated();
307 
308  protected slots:
309  virtual void topLabelCheckStateChanged();
310 
311  protected:
318 
319  QString myVariableData;
320 
321  public:
322  int myIndent;
324  QHBoxLayout* mySpacedLayout;
325 
328  QWidget* myTopLine;
330  QWidget* myChoiceCanvas;
331  QRadioButton* myUseDefault;
332  QRadioButton* myUseSpecific;
333  QSpacerItem* myTopSeparator;
334  QHBoxLayout* myTopLineLayout;
335  QSpacerItem* mySpacerItem;
336  };
337 
339 
341  {
342  public:
344  {
345  };
346 
347  virtual DtTaskSetVariableWidgetInterface* create(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0,
349 
350  virtual makVrv::DtUnicode codeVariableType() const = 0;
351  virtual std::string className() const = 0;
352 
353  virtual bool canBeUsedAsWidget() const = 0;
354 
357 
359  virtual std::string designerIcon() const
360  {
361  return "../data/images/icons/Simulate_FrontEnd_Icon.ico";
362  }
363 
365  virtual std::string designerGroup() const = 0;
366 
368  virtual std::string headerFile() const = 0;
369 
371  virtual std::string variableName() const = 0;
372 
374  virtual bool includeInDesigner() const = 0;
375 
378  virtual void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core) = 0;
379 
381  };
382 
383  template <typename _Class>
385  {
386  public:
388 
390  {
391  };
392 
393  virtual DtTaskSetVariableWidgetInterface* create(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0,
395  {
396  return new _Class(de, parent, flags, cflags);
397  }
398 
400  {
401  return _Class::codeVariableType();
402  }
403 
404  virtual std::string className() const
405  {
406  return _Class::staticMetaObject.className();
407  }
408 
409  virtual std::string designerGroup() const
410  {
411  return _Class::designerGroup();
412  }
413 
414  virtual std::string headerFile() const
415  {
416  return _Class::headerFile();
417  }
418 
419  virtual std::string variableName() const
420  {
421  return _Class::variableName();
422  }
423 
424  virtual bool canBeUsedAsWidget() const
425  {
426  return _Class::canBeUsedAsWidget();
427  }
428 
429  virtual bool includeInDesigner() const
430  {
431  return _Class::includeInQtDesigner();
432  }
433 
436  virtual void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core)
437  {
439  }
440  };
441 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)