VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
informationDialogPage.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvUtil/signalslib.h>
13 
16 
17 #include <vrvCoreQt/DtPage.h>
19 #include <vrvCore/DtStateView.h>
20 #include <vrvCore/DtEntityState.h>
21 #include <vrvCore/DtSimEntry.h>
22 
24 
25 #include <QtWidgets/QTreeWidget>
26 
27 class QLabel;
28 class QVBoxLayout;
29 class DtFrame;
30 
31 namespace makVrv
32 {
33  class DtDe;
34  class DtPersistenceToolbarWidget;
35 }
36 
37 namespace makVrf
38 {
39  namespace makVrfGuiObjectInformationQt
40  {
41  class DtInformationDialogPageLogic;
42  class DtInformationTreeWidgetItem;
43  class DtInformationDialog;
44 
46  {
47  public:
48  DtLineBreakWidget(QWidget* parent, QWidget* containing);
49 
50  virtual bool eventFilter(QObject*, QEvent*);
51 
52  virtual void setLineBreak(int);
53 
54  void setSelectable(bool b) { mySelectable = b; };
55  bool selectable() const { return mySelectable; };
56 
57  public:
58  QWidget* myContaining;
59  QFrame* myLine;
60 
61  protected:
63  };
64 
66  {
67  public:
69  virtual ~DtShadedWidget();
70 
71  void setDown(bool);
72  bool down() const { return myDown; };
73 
74  void setSelectable(bool);
75  bool selectable() const { return mySelectable && isEnabled(); };
76 
77  virtual void paintEvent(QPaintEvent*);
78 
79  protected:
80  bool myDown;
82  };
83 
85  public QObject
86  {
87  public:
90 
91  virtual ~DtItemUpdateFunction();
92 
94  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
95  const std::string& keywords);
96  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
97 
98  virtual void setLogic(DtInformationDialogPageLogic* l);
99  virtual void setTreeWidgetItem(DtInformationTreeWidgetItem*);
100 
102  virtual void stateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
103 
104  virtual void adjustWidgetForColumnSpan(int colSpan);
105  virtual void adjustWidgetForRowSpan(int rowSpan);
106 
107  virtual void slot_onStateViewUpdated()
108  {
109  stateViewUpdated(myState);
110  }
111 
112  virtual QVariant value(int col, int role, const QTreeWidgetItem*,
114  virtual bool valueNeedsUpdate(int col, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) = 0;
115 
116  virtual bool shouldBeHidden() const;
117 
119 
121  {
122  deactivate();
123  }
124 
125  makVrv::DtDe* de() const;
126 
127  virtual void deactivate();
128 
130  virtual std::string icon() const;
131 
132  DtInformationTreeWidgetItem* treeWidgetItem()
133  {
134  return myTreeWidgetItem;
135  }
136 
137  virtual void setFixedItemWidth(int);
138  virtual void setFixedItemHeight(int);
139 
140  virtual DtFilename pixmapFile() const;
141 
142  virtual QSize minimumSizeHint() const;
143  virtual void setMaximumSize(const QSize&);
144  virtual void setMinimumSize(const QSize&);
145  virtual QRect geometry() const;
146 
147  virtual void setMinimumHeight(int);
148  virtual void setMinimumWidth(int);
149  virtual void setMaximumHeight(int);
150  virtual void setMaximumWidth(int);
151 
152  virtual bool eventFilter(QObject*, QEvent*);
153 
154  virtual bool mouseEnterEvent();
155  virtual bool mouseLeaveEvent();
156 
157  virtual void stateViewUpdated();
158 
160  virtual QVariant widgetValue(int col, int role, QTreeWidgetItem* item, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
162 
164  virtual bool needsPageLogicForWidgetRepresentation() const;
165 
166  QWidget* container() const
167  {
168  return myContainer;
169  }
170 
171  virtual QWidget* createContainerData() const;
172 
173  protected:
174  virtual void fixupPixmapsOnResize();
175 
176  protected:
180 
181  public:
185  };
186 
188  {
189  public:
192  {
193  }
194 
197  {
198  }
199 
201  virtual void setFixedItemWidth(int i)
202  {
203  myFixedItemWidth = i;
204  }
205 
207  virtual void setFixedItemHeight(int i)
208  {
209  myFixedItemHeight = i;
210  }
211 
212  virtual void adjustWidgetForColumnSpan(int colSpan)
213  {
214  myColSpan = colSpan;
215  }
216 
217  virtual void adjustWidgetForRowSpan(int rowSpan)
218  {
219  myRowSpan = rowSpan;
220  }
221  };
222 
224  {
225  public:
227  virtual std::string creatorName() = 0;
230  };
231 
233  {
234  public:
237 
238  virtual std::string creatorName() { return T::creatorName(); };
239  virtual DtItemUpdateFunction* create(DtInformationDialogPageLogic* l) { return new T(l); };
240  virtual DtItemUpdateFunction* create(makVrv::DtDe& de) { return new T(de); };
241  };
242 
245  {
246  Q_OBJECT
247 
248  public:
250  {
251  AlwaysShow = 0,
252  NeverShow = 1,
253  InitiallyHideAndCheckToShow = 2
254  };
255 
257  DtInformationDialogPage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f = Qt::SubWindow);
258 
260  virtual ~DtInformationDialogPage();
261 
262  virtual ShowStatus setupGui(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
263 
264  virtual QTreeWidget* dataItems();
265 
267  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
268 
270  virtual void deactivate();
271 
272  virtual void stateViewRemoved();
273 
274  virtual void updateData();
275  virtual bool mouseEnterEvent();
276  virtual bool mouseLeaveEvent();
277 
278  virtual void setFixedItemHeight(int);
279  virtual void setFixedItemWidth(int);
280 
281  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList&);
282 
285  virtual bool selectElement(const std::string&);
286 
288  virtual bool isSubElementSelected(const std::string&) const;
289 
291  virtual void unknownDataItem(const std::string&);
292 
293  virtual const makVrv::DtPageConfiguration::PagePathList& informationItems() const
294  {
295  return myInformationItems;
296  }
297 
299  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
300  const std::string& keywords);
301  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
302  virtual QSize minimumSizeHint() const;
303  virtual void setMaximumSize(const QSize& size);
304  virtual void setMinimumSize(const QSize& size);
305  virtual QRect geometry() const;
306 
307  virtual void setMinimumHeight(int);
308  virtual void setMinimumWidth(int);
309  virtual void setMaximumHeight(int);
310  virtual void setMaximumWidth(int);
311 
312  virtual void removeTitle();
313 
314  virtual void adjustWidgetForColumnSpan(int colSpan);
315  virtual void adjustWidgetForRowSpan(int rowSpan);
316 
319  virtual void setLineBreak(int);
320 
321  virtual DtInformationDialogPageLogic* createLogic()
322  {
323  return 0;
324  }
325 
327  virtual void dialogAboutToShow(DtInformationDialog*);
328 
330  {
331  return myLogic;
332  }
333 
334  virtual void forceRemove();
335 
337  virtual void signalToAddWhenReady(bool, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
338 
340  virtual void setSizeHint(const QSize&);
341  virtual QSize sizeHint() const;
342 
343  boost::signal<void (DtInformationDialogPage*)> signal_readyToShow;
344  boost::signal<void ()> signal_stateViewUpdated;
345  boost::signal<void (std::string)> signal_showInformationPage;
346  boost::signal<void (std::string, bool)> signal_expandSection;
347 
348  protected slots:
349  virtual void lineBreakDestroyed();
350 
351  protected:
353  virtual QWidget* createPageContents(ShowStatus& status);
354  virtual void updateShowState(const std::string& s, bool b);
355 
357  virtual void activate();
358 
359  virtual bool keepInformationDialogUpOnRewind() const { return true; };
360 
361  protected:
366  QSize mySizeHint;
367 
368  public:
369  QVBoxLayout* myMainLayout;
370  QVBoxLayout* myContentsLayout;
374  };
375 
377  {
378  public:
379  enum AddFlags
380  {
381  Before = 1,
382  ChildOf = 2
383  };
384 
385  public:
387 
388  virtual ~DtInformationDialogPageLogic();
389 
390  virtual void updateData();
391  virtual void clearInterface();
392 
394  {
395  return myDe;
396  }
397 
398  void setInterface(DtInformationDialogPage* iFace)
399  {
400  myInterface = iFace;
401  }
402 
403  makVrv::DtElementID elementId() const
404  {
405  return myStateId;
406  }
407 
409  {
410  return myState;
411  }
412 
413  virtual void setState(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
414 
415  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList& pathList);
416  virtual void forceRemove();
417 
418  public:
420  virtual DtInformationTreeWidgetItem* addDataItem(const std::string& name, DtItemUpdateFunction* function,
421  const std::string& before = "", int flags = Before);
422 
424  virtual void replaceUpdateFunction(const std::string& name, DtItemUpdateFunction* function);
425 
427  virtual void removeDataItem(const std::string& name);
428 
430  virtual void setDataItemVisible(const std::string&, bool);
431 
433  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
434  virtual void deactivate();
435 
436  virtual void stateViewRemoved();
437  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
438 
440  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
441 
442  virtual void setFixedItemHeight(int);
443  int fixedItemHeight() const
444  {
445  return myFixedItemHeight;
446  }
447 
448  virtual void setFixedItemWidth(int);
449  int fixedItemWidth() const
450  {
451  return myFixedItemWidth;
452  }
453 
454  protected:
455  virtual DtInformationTreeWidgetItem* createTreeWidgetItem();
456 
457  virtual void completeRateChange();
458  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& state);
459 
461  virtual makVrv::DtSimEntryUpdater::UpdateRate defaultUpdateRate() const;
462 
463  virtual makVrv::DtSimEntryUpdater::UpdateRate currentUpdateRate() const;
465 
466  protected:
473  std::map<std::string, DtInformationTreeWidgetItem*> myItems;
477  };
478 
480  {
481  public:
483  virtual ~DtInformationTreeWidgetItem();
484 
486  {
487  DtItemUpdateFunction* old = myUpdater;
488 
489  myUpdater = f;
490 
491  return old;
492  }
493 
494  virtual bool needsUpdate(int col) const;
495 
496  const std::string& internalName() const
497  {
498  return myInternalName;
499  }
500 
501  void setInternalName(const std::string& n)
502  {
503  myInternalName = n;
504  }
505 
507  {
508  myState = s;
509  }
510 
512  {
513  myUpdater->activate(s);
514  }
515 
517  {
518  myUpdater->deactivate(s);
519  }
520 
522  {
523  return myUpdater;
524  }
525 
527  {
528  myUpdater->stateViewUpdated(s);
529  }
530 
531  protected:
532  virtual QVariant data(int col, int role) const;
533 
534  protected:
536  std::string myInternalName;
538  };
539  }
540 }

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)