VR-Forces 4.10 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 #if !defined(Q_MOC_RUN)
13 #include <vrvUtil/signalslib.h>
14 
17 
18 #include <vrvCoreQt/DtPage.h>
20 #include <vrvCore/DtStateView.h>
21 #include <vrvCore/DtEntityState.h>
22 #include <vrvCore/DtSimEntry.h>
23 
25 #endif
26 #include <boost/signals2.hpp>
27 
28 #include <QtWidgets/QTreeWidget>
29 
30 class QLabel;
31 class QVBoxLayout;
32 class DtFrame;
33 
34 namespace makVrv
35 {
36  class DtDe;
37  class DtPersistenceToolbarWidget;
38 }
39 
40 namespace makVrf
41 {
42  namespace makVrfGuiObjectInformationQt
43  {
44  class DtInformationDialogPageLogic;
45  class DtInformationTreeWidgetItem;
46  class DtInformationDialog;
47 
49  {
50  public:
51  DtLineBreakWidget(QWidget* parent, QWidget* containing);
52 
53  virtual bool eventFilter(QObject*, QEvent*);
54 
55  virtual void setLineBreak(int);
56 
57  void setSelectable(bool b) { mySelectable = b; };
58  bool selectable() const { return mySelectable; };
59 
60  public:
61  QWidget* myContaining;
62  QFrame* myLine;
63 
64  protected:
66  };
67 
69  {
70  public:
71  DtShadedWidget(QWidget*);
72  virtual ~DtShadedWidget();
73 
74  void setDown(bool);
75  bool down() const { return myDown; };
76 
77  void setSelectable(bool);
78  bool selectable() const { return mySelectable && isEnabled(); };
79 
80  virtual void paintEvent(QPaintEvent*);
81 
82  protected:
83  bool myDown;
85  };
86 
88  public QObject
89  {
90  public:
93 
94  virtual ~DtItemUpdateFunction();
95 
97  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
98  const std::string& keywords);
99  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
100 
101  virtual void setLogic(DtInformationDialogPageLogic* l);
103  {
104  return myLogic;
105  }
106 
107  virtual void setTreeWidgetItem(DtInformationTreeWidgetItem*);
108 
110  virtual void stateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
111 
112  virtual void adjustWidgetForColumnSpan(int colSpan);
113  virtual void adjustWidgetForRowSpan(int rowSpan);
114 
115  virtual void slot_onStateViewUpdated()
116  {
117  stateViewUpdated(myState);
118  }
119 
120  virtual QVariant value(int col, int role, const QTreeWidgetItem*,
122  virtual bool valueNeedsUpdate(int col, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*) = 0;
123 
124  virtual bool shouldBeHidden() const;
125 
127 
129  {
130  deactivate();
131  }
132 
133  makVrv::DtDe* de() const;
134 
135  virtual void deactivate();
136 
138  virtual std::string icon() const;
139 
141  {
142  return myTreeWidgetItem;
143  }
144 
145  virtual void setFixedItemWidth(int);
146  virtual void setFixedItemHeight(int);
147 
148  virtual DtFilename pixmapFile() const;
149 
150  virtual QSize minimumSizeHint() const;
151  virtual void setMaximumSize(const QSize&);
152  virtual void setMinimumSize(const QSize&);
153  virtual QRect geometry() const;
154 
155  virtual void setMinimumHeight(int);
156  virtual void setMinimumWidth(int);
157  virtual void setMaximumHeight(int);
158  virtual void setMaximumWidth(int);
159 
160  virtual bool eventFilter(QObject*, QEvent*);
161 
162  virtual bool mouseEnterEvent();
163  virtual bool mouseLeaveEvent();
164 
165  virtual void stateViewUpdated();
166 
167  virtual void setItemParameters(const std::vector<std::string>& params);
168  virtual const std::vector<std::string>& itemParameters() const;
169 
171  virtual QVariant widgetValue(int col, int role, QTreeWidgetItem* item, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
174 
176  virtual bool needsPageLogicForWidgetRepresentation() const;
177 
178  QWidget* container() const
179  {
180  return myContainer;
181  }
182 
183  virtual QWidget* createContainerData() const;
184 
185  boost::signals2::signal<void ()> signal_needsUpdate;
186 
187  protected:
188  virtual void fixupPixmapsOnResize();
189 
190  protected:
194 
195  std::vector<std::string> myItemParams;
196 
197  public:
198  QWidget* myDefaultText;
200  QWidget* myContainer;
201  };
202 
204  {
205  public:
208  {
209  }
210 
213  {
214  }
215 
217  virtual void setFixedItemWidth(int i)
218  {
219  myFixedItemWidth = i;
220  }
221 
223  virtual void setFixedItemHeight(int i)
224  {
225  myFixedItemHeight = i;
226  }
227 
228  virtual void adjustWidgetForColumnSpan(int colSpan)
229  {
230  myColSpan = colSpan;
231  }
232 
233  virtual void adjustWidgetForRowSpan(int rowSpan)
234  {
235  myRowSpan = rowSpan;
236  }
237  };
238 
240  {
241  public:
243  virtual std::string creatorName() = 0;
246  };
247 
249  {
250  public:
253 
254  virtual std::string creatorName() { return T::creatorName(); };
255  virtual DtItemUpdateFunction* create(DtInformationDialogPageLogic* l) { return new T(l); };
256  virtual DtItemUpdateFunction* create(makVrv::DtDe& de) { return new T(de); };
257  };
258 
261  {
262  Q_OBJECT
263 
264  public:
266  {
267  AlwaysShow = 0,
268  NeverShow = 1,
269  InitiallyHideAndCheckToShow = 2
270  };
271 
273  DtInformationDialogPage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f = Qt::SubWindow);
274 
276  virtual ~DtInformationDialogPage();
277 
278  virtual ShowStatus setupGui(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
279 
280  virtual QTreeWidget* dataItems();
281 
283  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
284 
286  virtual void deactivate();
287 
288  virtual void stateViewRemoved();
289 
290  virtual void updateData();
291  virtual bool mouseEnterEvent();
292  virtual bool mouseLeaveEvent();
293 
294  virtual void setFixedItemHeight(int);
295  virtual void setFixedItemWidth(int);
296 
297  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList&);
298 
301  virtual bool selectElement(const std::string&);
302 
304  virtual bool isSubElementSelected(const std::string&) const;
305 
307  virtual void unknownDataItem(const std::string&);
308 
310  {
311  return myInformationItems;
312  }
313 
315  virtual QWidget* createWidgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*,
316  const std::string& keywords);
317  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
318  virtual QSize minimumSizeHint() const;
319  virtual void setMaximumSize(const QSize& size);
320  virtual void setMinimumSize(const QSize& size);
321  virtual QRect geometry() const;
322 
323  virtual void setMinimumHeight(int);
324  virtual void setMinimumWidth(int);
325  virtual void setMaximumHeight(int);
326  virtual void setMaximumWidth(int);
327 
328  virtual void removeTitle();
329 
330  virtual void adjustWidgetForColumnSpan(int colSpan);
331  virtual void adjustWidgetForRowSpan(int rowSpan);
332 
335  virtual void setLineBreak(int);
336 
338  {
339  return 0;
340  }
341 
343  virtual void dialogAboutToShow(DtInformationDialog*);
344 
346  {
347  return myLogic;
348  }
349 
350  virtual void setLogic(DtInformationDialogPageLogic*);
351 
352  virtual void forceRemove();
353 
355  virtual void signalToAddWhenReady(bool, const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* s);
356 
358  virtual void setSizeHint(const QSize&);
359  virtual QSize sizeHint() const;
360 
361  virtual void mainWindowHidden();
362  virtual void mainWindowShown();
363 
364  boost::signals2::signal<void (DtInformationDialogPage*)> signal_readyToShow;
365  boost::signals2::signal<void ()> signal_stateViewUpdated;
366  boost::signals2::signal<void (std::string, DtInformationSectionDisplayHandler*)> signal_showInformationPage;
367  boost::signals2::signal<void (std::string, bool)> signal_expandSection;
368 
369  protected slots:
370  virtual void lineBreakDestroyed();
371 
372  protected:
374  virtual QWidget* createPageContents(ShowStatus& status);
375  virtual void updateShowState(const std::string& s, bool b);
376 
378  virtual void activate();
379 
380  virtual bool keepInformationDialogUpOnRewind() const { return true; };
381 
382  protected:
387  QSize mySizeHint;
388 
389  public:
390  QVBoxLayout* myMainLayout;
391  QVBoxLayout* myContentsLayout;
395  };
396 
398  {
399  public:
400  enum AddFlags
401  {
402  Before = 1,
403  ChildOf = 2
404  };
405 
406  public:
408 
409  virtual ~DtInformationDialogPageLogic();
410 
411  virtual void updateData();
412  virtual void clearInterface();
413 
415  {
416  return myDe;
417  }
418 
420  {
421  myInterface = iFace;
422  }
423 
425  {
426  return myStateId;
427  }
428 
430  {
431  return myState;
432  }
433 
434  virtual void setState(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
435 
436  virtual void addDataItems(const makVrv::DtPageConfiguration::PagePathList& pathList);
437  virtual void forceRemove();
438 
439  public:
441  virtual DtInformationTreeWidgetItem* addDataItem(const std::string& name, DtItemUpdateFunction* function,
442  const std::string& before = "", int flags = Before);
443 
445  virtual void replaceUpdateFunction(const std::string& name, DtItemUpdateFunction* function);
446 
448  virtual void removeDataItem(const std::string& name);
449 
451  virtual void setDataItemVisible(const std::string&, bool);
452 
454  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
455  virtual void deactivate();
456 
457  virtual void stateViewRemoved();
458  virtual void slot_onStateViewUpdated(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
459 
461  virtual void slot_onUpdateRateChanged(makVrv::DtUniqueID id, int rate);
462 
463  virtual void setFixedItemHeight(int);
464  int fixedItemHeight() const
465  {
466  return myFixedItemHeight;
467  }
468 
469  virtual void setFixedItemWidth(int);
470  int fixedItemWidth() const
471  {
472  return myFixedItemWidth;
473  }
474 
475  virtual void slot_itemRequestedUpdate(DtItemUpdateFunction*);
476 
477  virtual const std::set<makVrv::DtUniqueID>& elementIDs() const;
478 
479  protected:
480  virtual void slot_defaultIconListChanged();
481 
482  virtual DtInformationTreeWidgetItem* createTreeWidgetItem();
483 
484  virtual void completeRateChange();
485  virtual void slot_onStateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>& state);
486 
488  virtual makVrv::DtSimEntryUpdater::UpdateRate defaultUpdateRate() const;
489 
490  virtual makVrv::DtSimEntryUpdater::UpdateRate currentUpdateRate() const;
492 
493  protected:
500  std::map<std::string, DtInformationTreeWidgetItem*> myItems;
504  mutable std::set<makVrv::DtUniqueID> myElementIDs;
505  boost::signals2::connection myStateUpdateConnection;
506  };
507 
509  {
510  public:
512  virtual ~DtInformationTreeWidgetItem();
513 
515  {
516  DtItemUpdateFunction* old = myUpdater;
517 
518  myUpdater = f;
519 
520  return old;
521  }
522 
523  virtual bool needsUpdate(int col) const;
524 
525  const std::string& internalName() const
526  {
527  return myInternalName;
528  }
529 
530  void setInternalName(const std::string& n)
531  {
532  myInternalName = n;
533  }
534 
536  {
537  myState = s;
538  }
539 
541  {
542  myUpdater->activate(s);
543  }
544 
546  {
547  myUpdater->deactivate(s);
548  }
549 
551  {
552  return myUpdater;
553  }
554 
556  {
557  myUpdater->stateViewUpdated(s);
558  }
559 
560  protected:
561  virtual QVariant data(int col, int role) const;
562 
563  protected:
565  std::string myInternalName;
567  };
568  }
569 }
int myFixedItemWidth
Definition: informationDialogPage.h:503
std::list< DtPagePath > PagePathList
Definition: DtPageConfiguration.h:30
DtItemUpdateFunctionCreator()
Definition: informationDialogPage.h:251
makVrv::DtElementID elementId() const
Definition: informationDialogPage.h:424
makVrv::DtSignalConnectionManager myConnections
Definition: informationDialogPage.h:498
QWidget * myDefaultText
Definition: informationDialogPage.h:198
makVrv::DtPageConfiguration::PagePathList myInformationItems
Definition: informationDialogPage.h:384
void setSelectable(bool b)
Definition: informationDialogPage.h:57
DtInformationDialogPageLogic * myLogic
Definition: informationDialogPage.h:191
Contains makVrv::DtPage class.
makVrv::DtDe & myDe
Definition: informationDialogPage.h:495
virtual DtItemUpdateFunction * create(DtInformationDialogPageLogic *l)
Definition: informationDialogPage.h:255
makVrv::DtElementID myStateId
Definition: informationDialogPage.h:497
UpdateRate
Definition: DtSimEntryUpdater.h:31
std::string myInternalName
Definition: informationDialogPage.h:565
void stateViewUpdated(makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *s)
Definition: informationDialogPage.h:555
makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * state()
Definition: informationDialogPage.h:429
std::map< std::string, DtInformationTreeWidgetItem * > myItems
Definition: informationDialogPage.h:500
int myFixedItemHeight
Definition: informationDialogPage.h:502
DtItemUpdateFunction * myUpdater
Definition: informationDialogPage.h:564
virtual std::string creatorName()
Definition: informationDialogPage.h:254
voidpf void uLong size
Definition: ioapi.h:39
boost::signals2::signal< void()> signal_stateViewUpdated
Definition: informationDialogPage.h:365
DtItemUpdateFunction * setUpdateFunction(DtItemUpdateFunction *f)
Definition: informationDialogPage.h:514
Contains makVrv::DtStateView class.
virtual void setFixedItemHeight(int i)
Override to allow subclasses to set their own height.
Definition: informationDialogPage.h:223
virtual ~DtItemUpdateFunctionCreatorInterface()
Definition: informationDialogPage.h:242
bool down() const
Definition: informationDialogPage.h:75
QFrame * myLine
Definition: informationDialogPage.h:62
std::vector< std::string > myItemParams
Definition: informationDialogPage.h:195
bool mySelectable
Definition: informationDialogPage.h:84
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
bool myDeleting
Definition: informationDialogPage.h:386
DtItemUpdateFunction * updater()
Definition: informationDialogPage.h:550
QWidget * container() const
Definition: informationDialogPage.h:178
DtInfoIconItem(DtInformationDialogPageLogic *l)
Definition: informationDialogPage.h:211
Definition: informationDialogPage.h:203
QWidget * myContainer
Definition: informationDialogPage.h:200
makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * myState
Definition: informationDialogPage.h:566
QWidget * myWidgetRepresentation
Definition: informationDialogPage.h:393
bool myFirstUpdate
Definition: informationDialogPage.h:501
QLabel * myIconTitle
Definition: informationDialogPage.h:199
boost::signals2::connection myStateUpdateConnection
Definition: informationDialogPage.h:505
DtInformationDialogPageLogic * logic() const
Definition: informationDialogPage.h:345
Sections that are added in an information dialog section dialog need to be subclasses of this...
Definition: informationDialogHandler.h:109
boost::signals2::signal< void(std::string, bool)> signal_expandSection
Definition: informationDialogPage.h:367
int myLineBreak
Definition: informationDialogPage.h:385
Contains makVrv::DtPageConfiguration class.
virtual void deactivate(makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *s)
Definition: informationDialogPage.h:128
Contains makVrv::DtSimEntry class.
makVrv::DtSignalConnectionManager myConnections
Definition: informationDialogPage.h:193
void deactivate(makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *s)
Definition: informationDialogPage.h:545
bool selectable() const
Definition: informationDialogPage.h:58
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtInformationDialogPage * myInterface
Definition: informationDialogPage.h:494
Contains makVrv::DtEntityState class.
void activate(makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *s)
Definition: informationDialogPage.h:540
std::set< makVrv::DtUniqueID > myElementIDs
Definition: informationDialogPage.h:504
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:27
boost::signals2::signal< void(DtInformationDialogPage *)> signal_readyToShow
Definition: informationDialogPage.h:364
bool mySelectable
Definition: informationDialogPage.h:65
int fixedItemWidth() const
Definition: informationDialogPage.h:470
DtInformationDialogPageLogic * logic()
Definition: informationDialogPage.h:102
QVBoxLayout * myMainLayout
Definition: informationDialogPage.h:390
virtual const makVrv::DtPageConfiguration::PagePathList & informationItems() const
Definition: informationDialogPage.h:309
void setState(makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *s)
Definition: informationDialogPage.h:535
DtInformationTreeWidgetItem * treeWidgetItem()
Definition: informationDialogPage.h:140
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtInfoIconItem(makVrv::DtDe &de)
Definition: informationDialogPage.h:206
virtual void setFixedItemWidth(int i)
Override to allow subclasses to set their own width.
Definition: informationDialogPage.h:217
DtInformationTreeWidgetItem * myTreeWidgetItem
Definition: informationDialogPage.h:192
Base class to provide boost signal/slot management.
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:25
virtual void slot_onStateViewUpdated()
Definition: informationDialogPage.h:115
int fixedItemHeight() const
Definition: informationDialogPage.h:464
virtual DtInformationDialogPageLogic * createLogic()
Definition: informationDialogPage.h:337
makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > * myState
Definition: informationDialogPage.h:496
virtual void adjustWidgetForColumnSpan(int colSpan)
Definition: informationDialogPage.h:228
const std::string & internalName() const
Definition: informationDialogPage.h:525
QVBoxLayout * myContentsLayout
Definition: informationDialogPage.h:391
DtLineBreakWidget * myLineBreakWidget
Definition: informationDialogPage.h:394
void setInternalName(const std::string &n)
Definition: informationDialogPage.h:530
ShowStatus
Definition: informationDialogPage.h:265
virtual ~DtItemUpdateFunctionCreator()
Definition: informationDialogPage.h:252
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: informationDialogPage.h:48
QSize mySizeHint
Definition: informationDialogPage.h:387
makVrv::DtSignalConnectionManager myActivatedConnections
Definition: informationDialogPage.h:499
bool selectable() const
Definition: informationDialogPage.h:78
Contains makVrv::DtInformationDialogHandler class.
boost::signals2::signal< void()> signal_needsUpdate
Definition: informationDialogPage.h:185
virtual void adjustWidgetForRowSpan(int rowSpan)
Definition: informationDialogPage.h:233
makVrv::DtDe & de()
Definition: informationDialogPage.h:414
bool myDown
Definition: informationDialogPage.h:83
virtual DtItemUpdateFunction * create(DtInformationDialogPageLogic *l)=0
QTreeWidget * myDataItems
Definition: informationDialogPage.h:392
Simple handler that defines mouse events that can be handled by something added to a sectioned dialog...
Definition: informationDialogHandler.h:39
Definition: informationDialogPage.h:68
boost::signals2::signal< void(std::string, DtInformationSectionDisplayHandler *)> signal_showInformationPage
Definition: informationDialogPage.h:366
void setInterface(DtInformationDialogPage *iFace)
Definition: informationDialogPage.h:419
virtual DtItemUpdateFunction * create(makVrv::DtDe &de)
Definition: informationDialogPage.h:256

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)