VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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:
68  DtShadedWidget(QWidget*);
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 
159  virtual void setItemParameters(const std::vector<std::string>& params);
160  virtual const std::vector<std::string>& itemParameters() const;
161 
163  virtual QVariant widgetValue(int col, int role, QTreeWidgetItem* item, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
165 
167  virtual bool needsPageLogicForWidgetRepresentation() const;
168 
169  QWidget* container() const
170  {
171  return myContainer;
172  }
173 
174  virtual QWidget* createContainerData() const;
175 
176  boost::signal<void ()> signal_needsUpdate;
177 
178  protected:
179  virtual void fixupPixmapsOnResize();
180 
181  protected:
185 
186  std::vector<std::string> myItemParams;
187 
188  public:
189  QWidget* myDefaultText;
191  QWidget* myContainer;
192  };
193 
195  {
196  public:
199  {
200  }
201 
204  {
205  }
206 
208  virtual void setFixedItemWidth(int i)
209  {
210  myFixedItemWidth = i;
211  }
212 
214  virtual void setFixedItemHeight(int i)
215  {
216  myFixedItemHeight = i;
217  }
218 
219  virtual void adjustWidgetForColumnSpan(int colSpan)
220  {
221  myColSpan = colSpan;
222  }
223 
224  virtual void adjustWidgetForRowSpan(int rowSpan)
225  {
226  myRowSpan = rowSpan;
227  }
228  };
229 
231  {
232  public:
234  virtual std::string creatorName() = 0;
237  };
238 
240  {
241  public:
244 
245  virtual std::string creatorName() { return T::creatorName(); };
246  virtual DtItemUpdateFunction* create(DtInformationDialogPageLogic* l) { return new T(l); };
247  virtual DtItemUpdateFunction* create(makVrv::DtDe& de) { return new T(de); };
248  };
249 
252  {
253  Q_OBJECT
254 
255  public:
257  {
258  AlwaysShow = 0,
259  NeverShow = 1,
260  InitiallyHideAndCheckToShow = 2
261  };
262 
264  DtInformationDialogPage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f = Qt::SubWindow);
265 
267  virtual ~DtInformationDialogPage();
268 
269  virtual ShowStatus setupGui(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
270 
271  virtual QTreeWidget* dataItems();
272 
274  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
275 
277  virtual void deactivate();
278 
279  virtual void stateViewRemoved();
280 
281  virtual void updateData();
282  virtual bool mouseEnterEvent();
283  virtual bool mouseLeaveEvent();
284 
285  virtual void setFixedItemHeight(int);
286  virtual void setFixedItemWidth(int);
287 
288  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList&);
289 
292  virtual bool selectElement(const std::string&);
293 
295  virtual bool isSubElementSelected(const std::string&) const;
296 
298  virtual void unknownDataItem(const std::string&);
299 
300  virtual const makVrv::DtPageConfiguration::PagePathList& informationItems() const
301  {
302  return myInformationItems;
303  }
304 
306  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
307  const std::string& keywords);
308  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
309  virtual QSize minimumSizeHint() const;
310  virtual void setMaximumSize(const QSize& size);
311  virtual void setMinimumSize(const QSize& size);
312  virtual QRect geometry() const;
313 
314  virtual void setMinimumHeight(int);
315  virtual void setMinimumWidth(int);
316  virtual void setMaximumHeight(int);
317  virtual void setMaximumWidth(int);
318 
319  virtual void removeTitle();
320 
321  virtual void adjustWidgetForColumnSpan(int colSpan);
322  virtual void adjustWidgetForRowSpan(int rowSpan);
323 
326  virtual void setLineBreak(int);
327 
328  virtual DtInformationDialogPageLogic* createLogic()
329  {
330  return 0;
331  }
332 
334  virtual void dialogAboutToShow(DtInformationDialog*);
335 
337  {
338  return myLogic;
339  }
340 
341  virtual void forceRemove();
342 
344  virtual void signalToAddWhenReady(bool, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
345 
347  virtual void setSizeHint(const QSize&);
348  virtual QSize sizeHint() const;
349 
350  virtual void mainWindowHidden();
351  virtual void mainWindowShown();
352 
353  boost::signal<void (DtInformationDialogPage*)> signal_readyToShow;
354  boost::signal<void ()> signal_stateViewUpdated;
355  boost::signal<void (std::string)> signal_showInformationPage;
356  boost::signal<void (std::string, bool)> signal_expandSection;
357 
358  protected slots:
359  virtual void lineBreakDestroyed();
360 
361  protected:
363  virtual QWidget* createPageContents(ShowStatus& status);
364  virtual void updateShowState(const std::string& s, bool b);
365 
367  virtual void activate();
368 
369  virtual bool keepInformationDialogUpOnRewind() const { return true; };
370 
371  protected:
376  QSize mySizeHint;
377 
378  public:
379  QVBoxLayout* myMainLayout;
380  QVBoxLayout* myContentsLayout;
384  };
385 
387  {
388  public:
389  enum AddFlags
390  {
391  Before = 1,
392  ChildOf = 2
393  };
394 
395  public:
397 
398  virtual ~DtInformationDialogPageLogic();
399 
400  virtual void updateData();
401  virtual void clearInterface();
402 
404  {
405  return myDe;
406  }
407 
408  void setInterface(DtInformationDialogPage* iFace)
409  {
410  myInterface = iFace;
411  }
412 
413  makVrv::DtElementID elementId() const
414  {
415  return myStateId;
416  }
417 
419  {
420  return myState;
421  }
422 
423  virtual void setState(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
424 
425  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList& pathList);
426  virtual void forceRemove();
427 
428  public:
430  virtual DtInformationTreeWidgetItem* addDataItem(const std::string& name, DtItemUpdateFunction* function,
431  const std::string& before = "", int flags = Before);
432 
434  virtual void replaceUpdateFunction(const std::string& name, DtItemUpdateFunction* function);
435 
437  virtual void removeDataItem(const std::string& name);
438 
440  virtual void setDataItemVisible(const std::string&, bool);
441 
443  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
444  virtual void deactivate();
445 
446  virtual void stateViewRemoved();
447  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
448 
450  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
451 
452  virtual void setFixedItemHeight(int);
453  int fixedItemHeight() const
454  {
455  return myFixedItemHeight;
456  }
457 
458  virtual void setFixedItemWidth(int);
459  int fixedItemWidth() const
460  {
461  return myFixedItemWidth;
462  }
463 
464  virtual void slot_itemRequestedUpdate(DtItemUpdateFunction*);
465 
466  protected:
467  virtual DtInformationTreeWidgetItem* createTreeWidgetItem();
468 
469  virtual void completeRateChange();
470  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& state);
471 
473  virtual makVrv::DtSimEntryUpdater::UpdateRate defaultUpdateRate() const;
474 
475  virtual makVrv::DtSimEntryUpdater::UpdateRate currentUpdateRate() const;
477 
478  protected:
485  std::map<std::string, DtInformationTreeWidgetItem*> myItems;
489  };
490 
492  {
493  public:
495  virtual ~DtInformationTreeWidgetItem();
496 
498  {
499  DtItemUpdateFunction* old = myUpdater;
500 
501  myUpdater = f;
502 
503  return old;
504  }
505 
506  virtual bool needsUpdate(int col) const;
507 
508  const std::string& internalName() const
509  {
510  return myInternalName;
511  }
512 
513  void setInternalName(const std::string& n)
514  {
515  myInternalName = n;
516  }
517 
519  {
520  myState = s;
521  }
522 
524  {
525  myUpdater->activate(s);
526  }
527 
529  {
530  myUpdater->deactivate(s);
531  }
532 
534  {
535  return myUpdater;
536  }
537 
539  {
540  myUpdater->stateViewUpdated(s);
541  }
542 
543  protected:
544  virtual QVariant data(int col, int role) const;
545 
546  protected:
548  std::string myInternalName;
550  };
551  }
552 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)