VR-Forces 4.6 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  virtual void setIndent(int) = 0;
174 
176  virtual std::string variableDataFromUiDesigner(const QDomElement&, const DtScriptedTaskVariableLayoutConverter&) const = 0;
177 
179  static void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core)
180  {
181  }
182 
183  static bool includeInQtDesigner()
184  {
185  return true;
186  }
187 
190  virtual std::string scriptedTaskVariableName() const = 0;
192 
194  virtual void widgetInitializedForDialog(DtScriptedTaskDialog*)
195  {
196  }
197  };
198 
201  {
202  Q_OBJECT
203  Q_PROPERTY(QString label READ label WRITE setLabel)
204  Q_PROPERTY(bool isInternal READ isInternal WRITE setIsInternal)
205  Q_PROPERTY(int indent READ indent WRITE setIndent)
206  Q_PROPERTY(QString variableData READ variableData WRITE setVariableData DESIGNABLE false)
207 
208  public:
209  DtTaskSetVariableWidget(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0, const CreationFlags& cflags = NormalMode);
210 
211  //DTOR
212  virtual ~DtTaskSetVariableWidget();
213 
215  virtual void setToolTip(const QString&);
216 
219  virtual void setLabel(const std::string&);
220 
222  virtual void setLabel(const QString&);
223 
225  virtual void setVariableData(const std::string&);
226 
228  virtual void setVariableData(const QString&);
229  virtual QString variableData() const;
230 
231  virtual QString label() const;
232 
234  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& data);
235 
237  virtual void setIsInternal(bool);
238  virtual bool isInternal() const;
239 
241  virtual void setTopLineVisible(bool);
242  virtual bool topLineVisible() const;
243 
245  virtual void createTopLine();
246 
249  virtual void setIndent(int);
250  virtual int indent() const;
251 
253  virtual bool isValid() const;
254 
256  virtual void setTopLabelChecked(bool);
257  virtual bool topLabelChecked() const;
258 
260  virtual void setRange(double, double)
261  {
262  }
263 
264  virtual void setRange(const DtRange&);
265  virtual void setRangeTop(double);
266  virtual void setRangeTop(int);
267  virtual double rangeTop() const;
268 
269  virtual void setRangeBottom(double);
270  virtual void setRangeBottom(int);
271  virtual double rangeBottom() const;
272 
273  virtual const DtRange& getRange() const;
274 
277  virtual void setTopLabelIsCheckable(bool);
278  virtual bool topLabelIsCheckable() const;
279  virtual void getDefaultSpecificTitles(QString& defaultTitle, QString& specificTitle) const;
280  virtual void setDefaultSpecificTitles(const QString& defaultTitle, const QString& specificTitle);
281 
283  virtual void setupDefaultSpecificFromVariableData(const DtString& var);
284 
285  boost::signal<void (bool)> signal_topLevelCheckStateChanged;
286 
287  static bool includeInQtDesigner()
288  {
289  return true;
290  }
291 
292  virtual std::string variableDataFromUiDesigner(const QDomElement&, const DtScriptedTaskVariableLayoutConverter&) const;
293 
294  virtual std::string scriptedTaskVariableName() const;
295 
296  signals:
297 
300  void validityUpdated();
301 
302  protected slots:
303  virtual void topLabelCheckStateChanged();
304 
305  protected:
312 
313  QString myVariableData;
314 
315  public:
316  int myIndent;
318  QHBoxLayout* mySpacedLayout;
319 
322  QWidget* myTopLine;
324  QWidget* myChoiceCanvas;
325  QRadioButton* myUseDefault;
326  QRadioButton* myUseSpecific;
327  QSpacerItem* myTopSeparator;
328  QHBoxLayout* myTopLineLayout;
329  QSpacerItem* mySpacerItem;
330  };
331 
333 
335  {
336  public:
338  {
339  };
340 
341  virtual DtTaskSetVariableWidgetInterface* create(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0,
343 
344  virtual makVrv::DtUnicode codeVariableType() const = 0;
345  virtual std::string className() const = 0;
346 
349 
351  virtual std::string designerIcon() const
352  {
353  return "../data/images/icons/Simulate_FrontEnd_Icon.ico";
354  }
355 
357  virtual std::string designerGroup() const = 0;
358 
360  virtual std::string headerFile() const = 0;
361 
363  virtual std::string variableName() const = 0;
364 
366  virtual bool includeInDesigner() const = 0;
367 
370  virtual void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core) = 0;
371 
373  };
374 
375  template <typename _Class>
377  {
378  public:
380 
382  {
383  };
384 
385  virtual DtTaskSetVariableWidgetInterface* create(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0,
387  {
388  return new _Class(de, parent, flags, cflags);
389  }
390 
392  {
393  return _Class::codeVariableType();
394  }
395 
396  virtual std::string className() const
397  {
398  return _Class::staticMetaObject.className();
399  }
400 
401  virtual std::string designerGroup() const
402  {
403  return _Class::designerGroup();
404  }
405 
406  virtual std::string headerFile() const
407  {
408  return _Class::headerFile();
409  }
410 
411  virtual std::string variableName() const
412  {
413  return _Class::variableName();
414  }
415 
416  virtual bool includeInDesigner() const
417  {
418  return _Class::includeInQtDesigner();
419  }
420 
423  virtual void initializeForQtDesignerExtension(makVrv::DtDe& de, QDesignerFormEditorInterface* core)
424  {
426  }
427  };
428 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)