VR-Forces 4.3 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 <QtGui/QTreeWidget>
26 
27 class QLabel;
28 class QVBoxLayout;
29 
30 namespace makVrv
31 {
32  class DtDe;
33  class DtPersistenceToolbarWidget;
34 }
35 
36 namespace makVrf
37 {
38  namespace makVrfGuiObjectInformationQt
39  {
40  class DtInformationDialogPageLogic;
41  class DtInformationTreeWidgetItem;
42 
44  {
45  public:
47  virtual ~DtShadedWidget();
48 
49  void setDown(bool);
50 
51  virtual void paintEvent(QPaintEvent*);
52 
53  protected:
54  bool myDown;
55  };
56 
58  public QObject
59  {
60  public:
63 
64  virtual ~DtItemUpdateFunction();
65 
67  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
68 
69  virtual void setLogic(DtInformationDialogPageLogic* l);
70  virtual void setTreeWidgetItem(DtInformationTreeWidgetItem*);
71 
73  virtual void stateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
74 
75  virtual void adjustWidgetForColumnSpan(int colSpan);
76  virtual void adjustWidgetForRowSpan(int rowSpan);
77 
78  virtual void slot_onStateViewUpdated()
79  {
80  stateViewUpdated(myState);
81  }
82 
83  virtual QVariant value(int col, int role, const QTreeWidgetItem*,
85  virtual bool valueNeedsUpdate(int col, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) = 0;
86 
87  virtual bool shouldBeHidden() const;
88 
90 
92  {
93  deactivate();
94  }
95 
96  virtual void deactivate();
97 
99  virtual std::string icon() const;
100 
101  DtInformationTreeWidgetItem* treeWidgetItem()
102  {
103  return myTreeWidgetItem;
104  }
105 
106  virtual QSize minimumSizeHint() const;
107  virtual void setMaximumSize(const QSize&);
108  virtual void setMinimumSize(const QSize&);
109  virtual QRect geometry() const;
110 
111  virtual void setMinimumHeight(int);
112  virtual void setMinimumWidth(int);
113  virtual void setMaximumHeight(int);
114  virtual void setMaximumWidth(int);
115 
116  virtual bool eventFilter(QObject*, QEvent*);
117 
118  virtual bool mouseEnterEvent();
119  virtual bool mouseLeaveEvent();
120 
121  virtual void stateViewUpdated();
122 
124  virtual QVariant widgetValue(int col, int role, QTreeWidgetItem* item, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
125 
127  virtual bool needsPageLogicForWidgetRepresentation() const;
128 
129  QWidget* container() const
130  {
131  return myContainer;
132  }
133 
134  protected:
138 
139  public:
143  };
144 
146  {
147  public:
150  {
151  }
152 
155  {
156  }
157 
159  virtual void setFixedItemWidth(int i)
160  {
161  myFixedItemWidth = i;
162  }
163 
165  virtual void setFixedItemHeight(int i)
166  {
167  myFixedItemHeight = i;
168  }
169 
170  virtual void adjustWidgetForColumnSpan(int colSpan)
171  {
172  myColSpan = colSpan;
173  }
174 
175  virtual void adjustWidgetForRowSpan(int rowSpan)
176  {
177  myRowSpan = rowSpan;
178  }
179  };
180 
182  {
183  public:
185  virtual std::string creatorName() = 0;
188  };
189 
191  {
192  public:
195 
196  virtual std::string creatorName() { return T::creatorName(); };
197  virtual DtItemUpdateFunction* create(DtInformationDialogPageLogic* l) { return new T(l); };
198  virtual DtItemUpdateFunction* create(makVrv::DtDe& de) { return new T(de); };
199  };
200 
203  {
204  Q_OBJECT
205 
206  public:
208  {
209  AlwaysShow = 0,
210  NeverShow = 1,
211  InitiallyHideAndCheckToShow = 2
212  };
213 
215  DtInformationDialogPage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f = Qt::SubWindow);
216 
218  virtual ~DtInformationDialogPage();
219 
220  virtual ShowStatus setupGui(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
221 
222  virtual QTreeWidget* dataItems();
223 
225  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
226 
228  virtual void deactivate();
229 
230  virtual void stateViewRemoved();
231 
232  virtual void updateData();
233  virtual bool mouseEnterEvent();
234  virtual bool mouseLeaveEvent();
235 
236  virtual void setFixedItemHeight(int);
237  virtual void setFixedItemWidth(int);
238 
239  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList&);
240 
243  virtual bool selectElement(const std::string&);
244 
246  virtual bool isSubElementSelected(const std::string&) const;
247 
249  virtual void unknownDataItem(const std::string&);
250 
251  virtual const makVrv::DtPageConfiguration::PagePathList& informationItems() const
252  {
253  return myInformationItems;
254  }
255 
257  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
258  virtual QSize minimumSizeHint() const;
259  virtual void setMaximumSize(const QSize& size);
260  virtual void setMinimumSize(const QSize& size);
261  virtual QRect geometry() const;
262 
263  virtual void setMinimumHeight(int);
264  virtual void setMinimumWidth(int);
265  virtual void setMaximumHeight(int);
266  virtual void setMaximumWidth(int);
267 
268  virtual void removeTitle();
269 
270  virtual void adjustWidgetForColumnSpan(int colSpan);
271  virtual void adjustWidgetForRowSpan(int rowSpan);
272 
273  virtual DtInformationDialogPageLogic* createLogic()
274  {
275  return 0;
276  }
277 
279  {
280  return myLogic;
281  }
282 
284  virtual void signalToAddWhenReady(bool, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
285 
286  boost::signal<void (DtInformationDialogPage*)> signal_readyToShow;
287  boost::signal<void ()> signal_stateViewUpdated;
288  boost::signal<void (std::string)> signal_showInformationPage;
289  boost::signal<void (std::string, bool)> signal_expandSection;
290 
291  protected:
293  virtual QWidget* createPageContents(ShowStatus& status);
294 
296  virtual void activate();
297 
298  protected:
301 
302  public:
303  QVBoxLayout* myMainLayout;
304  QVBoxLayout* myContentsLayout;
307  };
308 
310  {
311  public:
312  enum AddFlags
313  {
314  Before = 1,
315  ChildOf = 2
316  };
317 
318  public:
320 
321  virtual ~DtInformationDialogPageLogic();
322 
323  virtual void updateData();
324  virtual void clearInterface();
325 
327  {
328  return myDe;
329  }
330 
331  void setInterface(DtInformationDialogPage* iFace)
332  {
333  myInterface = iFace;
334  }
335 
336  makVrv::DtElementID elementId() const
337  {
338  return myStateId;
339  }
340 
342  {
343  return myState;
344  }
345 
346  virtual void setState(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
347 
348  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList& pathList);
349 
350  public:
352  virtual DtInformationTreeWidgetItem* addDataItem(const std::string& name, DtItemUpdateFunction* function,
353  const std::string& before = "", int flags = Before);
354 
356  virtual void replaceUpdateFunction(const std::string& name, DtItemUpdateFunction* function);
357 
359  virtual void removeDataItem(const std::string& name);
360 
362  virtual void setDataItemVisible(const std::string&, bool);
363 
365  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
366  virtual void deactivate();
367 
368  virtual void stateViewRemoved();
369  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
370 
372  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
373 
374  virtual void setFixedItemHeight(int);
375  int fixedItemHeight() const
376  {
377  return myFixedItemHeight;
378  }
379 
380  virtual void setFixedItemWidth(int);
381  int fixedItemWidth() const
382  {
383  return myFixedItemWidth;
384  }
385 
386  protected:
387  virtual DtInformationTreeWidgetItem* createTreeWidgetItem();
388 
389  virtual void completeRateChange();
390  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& state);
391 
393  virtual makVrv::DtSimEntryUpdater::UpdateRate defaultUpdateRate() const;
394 
395  virtual makVrv::DtSimEntryUpdater::UpdateRate currentUpdateRate() const;
397 
398  protected:
405  std::map<std::string, DtInformationTreeWidgetItem*> myItems;
409  };
410 
412  {
413  public:
415  virtual ~DtInformationTreeWidgetItem();
416 
418  {
419  DtItemUpdateFunction* old = myUpdater;
420 
421  myUpdater = f;
422 
423  return old;
424  }
425 
426  virtual bool needsUpdate(int col) const;
427 
428  const std::string& internalName() const
429  {
430  return myInternalName;
431  }
432 
433  void setInternalName(const std::string& n)
434  {
435  myInternalName = n;
436  }
437 
439  {
440  myState = s;
441  }
442 
444  {
445  myUpdater->activate(s);
446  }
447 
449  {
450  myUpdater->deactivate(s);
451  }
452 
454  {
455  return myUpdater;
456  }
457 
459  {
460  myUpdater->stateViewUpdated(s);
461  }
462 
463  protected:
464  virtual QVariant data(int col, int role) const;
465 
466  protected:
468  std::string myInternalName;
470  };
471  }
472 }

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)