VR-Forces Development_Version 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 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 
45  {
46  public:
47  DtLineBreakWidget(QWidget* parent, QWidget* containing);
48 
49  virtual bool eventFilter(QObject*, QEvent*);
50 
51  virtual void setLineBreak(int);
52 
53  void setSelectable(bool b) { mySelectable = b; };
54  bool selectable() const { return mySelectable; };
55 
56  public:
57  QWidget* myContaining;
58  QFrame* myLine;
59 
60  protected:
62  };
63 
65  {
66  public:
68  virtual ~DtShadedWidget();
69 
70  void setDown(bool);
71  bool down() const { return myDown; };
72 
73  void setSelectable(bool);
74  bool selectable() const { return mySelectable && isEnabled(); };
75 
76  virtual void paintEvent(QPaintEvent*);
77 
78  protected:
79  bool myDown;
81  };
82 
84  public QObject
85  {
86  public:
89 
90  virtual ~DtItemUpdateFunction();
91 
93  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
94  const std::string& keywords);
95  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
96 
97  virtual void setLogic(DtInformationDialogPageLogic* l);
98  virtual void setTreeWidgetItem(DtInformationTreeWidgetItem*);
99 
101  virtual void stateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
102 
103  virtual void adjustWidgetForColumnSpan(int colSpan);
104  virtual void adjustWidgetForRowSpan(int rowSpan);
105 
106  virtual void slot_onStateViewUpdated()
107  {
108  stateViewUpdated(myState);
109  }
110 
111  virtual QVariant value(int col, int role, const QTreeWidgetItem*,
113  virtual bool valueNeedsUpdate(int col, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) = 0;
114 
115  virtual bool shouldBeHidden() const;
116 
118 
120  {
121  deactivate();
122  }
123 
124  virtual void deactivate();
125 
127  virtual std::string icon() const;
128 
129  DtInformationTreeWidgetItem* treeWidgetItem()
130  {
131  return myTreeWidgetItem;
132  }
133 
134  virtual void setFixedItemWidth(int);
135  virtual void setFixedItemHeight(int);
136 
137  virtual DtFilename pixmapFile() const;
138 
139  virtual QSize minimumSizeHint() const;
140  virtual void setMaximumSize(const QSize&);
141  virtual void setMinimumSize(const QSize&);
142  virtual QRect geometry() const;
143 
144  virtual void setMinimumHeight(int);
145  virtual void setMinimumWidth(int);
146  virtual void setMaximumHeight(int);
147  virtual void setMaximumWidth(int);
148 
149  virtual bool eventFilter(QObject*, QEvent*);
150 
151  virtual bool mouseEnterEvent();
152  virtual bool mouseLeaveEvent();
153 
154  virtual void stateViewUpdated();
155 
157  virtual QVariant widgetValue(int col, int role, QTreeWidgetItem* item, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
159 
161  virtual bool needsPageLogicForWidgetRepresentation() const;
162 
163  QWidget* container() const
164  {
165  return myContainer;
166  }
167 
168  virtual QWidget* createContainerData() const;
169 
170  protected:
171  virtual void fixupPixmapsOnResize();
172 
173  protected:
177 
178  public:
182  };
183 
185  {
186  public:
189  {
190  }
191 
194  {
195  }
196 
198  virtual void setFixedItemWidth(int i)
199  {
200  myFixedItemWidth = i;
201  }
202 
204  virtual void setFixedItemHeight(int i)
205  {
206  myFixedItemHeight = i;
207  }
208 
209  virtual void adjustWidgetForColumnSpan(int colSpan)
210  {
211  myColSpan = colSpan;
212  }
213 
214  virtual void adjustWidgetForRowSpan(int rowSpan)
215  {
216  myRowSpan = rowSpan;
217  }
218  };
219 
221  {
222  public:
224  virtual std::string creatorName() = 0;
227  };
228 
230  {
231  public:
234 
235  virtual std::string creatorName() { return T::creatorName(); };
236  virtual DtItemUpdateFunction* create(DtInformationDialogPageLogic* l) { return new T(l); };
237  virtual DtItemUpdateFunction* create(makVrv::DtDe& de) { return new T(de); };
238  };
239 
242  {
243  Q_OBJECT
244 
245  public:
247  {
248  AlwaysShow = 0,
249  NeverShow = 1,
250  InitiallyHideAndCheckToShow = 2
251  };
252 
254  DtInformationDialogPage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f = Qt::SubWindow);
255 
257  virtual ~DtInformationDialogPage();
258 
259  virtual ShowStatus setupGui(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
260 
261  virtual QTreeWidget* dataItems();
262 
264  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
265 
267  virtual void deactivate();
268 
269  virtual void stateViewRemoved();
270 
271  virtual void updateData();
272  virtual bool mouseEnterEvent();
273  virtual bool mouseLeaveEvent();
274 
275  virtual void setFixedItemHeight(int);
276  virtual void setFixedItemWidth(int);
277 
278  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList&);
279 
282  virtual bool selectElement(const std::string&);
283 
285  virtual bool isSubElementSelected(const std::string&) const;
286 
288  virtual void unknownDataItem(const std::string&);
289 
290  virtual const makVrv::DtPageConfiguration::PagePathList& informationItems() const
291  {
292  return myInformationItems;
293  }
294 
296  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
297  const std::string& keywords);
298  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
299  virtual QSize minimumSizeHint() const;
300  virtual void setMaximumSize(const QSize& size);
301  virtual void setMinimumSize(const QSize& size);
302  virtual QRect geometry() const;
303 
304  virtual void setMinimumHeight(int);
305  virtual void setMinimumWidth(int);
306  virtual void setMaximumHeight(int);
307  virtual void setMaximumWidth(int);
308 
309  virtual void removeTitle();
310 
311  virtual void adjustWidgetForColumnSpan(int colSpan);
312  virtual void adjustWidgetForRowSpan(int rowSpan);
313 
316  virtual void setLineBreak(int);
317 
318  virtual DtInformationDialogPageLogic* createLogic()
319  {
320  return 0;
321  }
322 
324  {
325  return myLogic;
326  }
327 
329  virtual void signalToAddWhenReady(bool, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
330 
331  boost::signal<void (DtInformationDialogPage*)> signal_readyToShow;
332  boost::signal<void ()> signal_stateViewUpdated;
333  boost::signal<void (std::string)> signal_showInformationPage;
334  boost::signal<void (std::string, bool)> signal_expandSection;
335 
336  protected slots:
337  virtual void lineBreakDestroyed();
338 
339  protected:
341  virtual QWidget* createPageContents(ShowStatus& status);
342 
344  virtual void activate();
345 
346  protected:
350 
351  public:
352  QVBoxLayout* myMainLayout;
353  QVBoxLayout* myContentsLayout;
357  };
358 
360  {
361  public:
362  enum AddFlags
363  {
364  Before = 1,
365  ChildOf = 2
366  };
367 
368  public:
370 
371  virtual ~DtInformationDialogPageLogic();
372 
373  virtual void updateData();
374  virtual void clearInterface();
375 
377  {
378  return myDe;
379  }
380 
381  void setInterface(DtInformationDialogPage* iFace)
382  {
383  myInterface = iFace;
384  }
385 
386  makVrv::DtElementID elementId() const
387  {
388  return myStateId;
389  }
390 
392  {
393  return myState;
394  }
395 
396  virtual void setState(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
397 
398  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList& pathList);
399 
400  public:
402  virtual DtInformationTreeWidgetItem* addDataItem(const std::string& name, DtItemUpdateFunction* function,
403  const std::string& before = "", int flags = Before);
404 
406  virtual void replaceUpdateFunction(const std::string& name, DtItemUpdateFunction* function);
407 
409  virtual void removeDataItem(const std::string& name);
410 
412  virtual void setDataItemVisible(const std::string&, bool);
413 
415  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
416  virtual void deactivate();
417 
418  virtual void stateViewRemoved();
419  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
420 
422  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
423 
424  virtual void setFixedItemHeight(int);
425  int fixedItemHeight() const
426  {
427  return myFixedItemHeight;
428  }
429 
430  virtual void setFixedItemWidth(int);
431  int fixedItemWidth() const
432  {
433  return myFixedItemWidth;
434  }
435 
436  protected:
437  virtual DtInformationTreeWidgetItem* createTreeWidgetItem();
438 
439  virtual void completeRateChange();
440  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& state);
441 
443  virtual makVrv::DtSimEntryUpdater::UpdateRate defaultUpdateRate() const;
444 
445  virtual makVrv::DtSimEntryUpdater::UpdateRate currentUpdateRate() const;
447 
448  protected:
455  std::map<std::string, DtInformationTreeWidgetItem*> myItems;
459  };
460 
462  {
463  public:
465  virtual ~DtInformationTreeWidgetItem();
466 
468  {
469  DtItemUpdateFunction* old = myUpdater;
470 
471  myUpdater = f;
472 
473  return old;
474  }
475 
476  virtual bool needsUpdate(int col) const;
477 
478  const std::string& internalName() const
479  {
480  return myInternalName;
481  }
482 
483  void setInternalName(const std::string& n)
484  {
485  myInternalName = n;
486  }
487 
489  {
490  myState = s;
491  }
492 
494  {
495  myUpdater->activate(s);
496  }
497 
499  {
500  myUpdater->deactivate(s);
501  }
502 
504  {
505  return myUpdater;
506  }
507 
509  {
510  myUpdater->stateViewUpdated(s);
511  }
512 
513  protected:
514  virtual QVariant data(int col, int role) const;
515 
516  protected:
518  std::string myInternalName;
520  };
521  }
522 }

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)