VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
taskStatePage.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)
17 
19 #endif
20 
21 #include <QtWidgets/QTreeWidget>
22 #include <QtWidgets/QWidget>
23 #include <QDialog>
24 
25 #include <map>
26 #include <vector>
27 
28 class DtUnitFormatter;
29 class QMouseEvent;
30 class QTabWidget;
31 class QQVBoxLayout;
32 
33 
34 namespace makVrf
35 {
36  class DtQSvgView;
37 
38  namespace makVrfGuiObjectInformationQt
39  {
40  class DtTaskStateItem;
41  class DtTaskStatePageLogic;
42 
44  {
45  Q_OBJECT
46 
47  public:
48 
49  DtBehaviorGraphDialog(makVrv::DtDe& de, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags() |
50  Qt::WindowMinimizeButtonHint |
51  Qt::WindowMaximizeButtonHint |
52  Qt::WindowCloseButtonHint);
53 
54  virtual ~DtBehaviorGraphDialog();
55 
57  virtual void addBehaviorGraphTab(const std::string& sScriptId);
58 
61  virtual void takeOwnership(const std::string& sScriptId, DtQSvgView* pGraphView);
62 
64  virtual void updateOrAddBehaviorGraph(const std::string& sScriptId, const std::string& sSvgContent);
65 
67  virtual void yieldOwnership(std::vector<std::string>& scriptIds, std::vector<DtQSvgView*>& graphTabs);
68 
69  signals:
70 
71  void closing();
72  void currentTabChanged(int, const std::string&);
73 
74  protected slots:
75 
77  virtual void onCurrentTabChanged(int);
78 
79  protected:
81  virtual void keyPressEvent(QKeyEvent *pEvent);
82  virtual void keyReleaseEvent(QKeyEvent *pEvent);
83 
84  virtual void closeEvent(QCloseEvent *);
85 
86 
87  protected:
89 
91  QVBoxLayout *pMyWidgetLayout;
92 
93  std::vector<std::string> myTabIndexToScriptIdTable;
95  std::map<std::string, DtQSvgView*> myGraphTabMap;
96 
97  };
98 
102  {
103  Q_OBJECT
104 
105  public:
106 
108  DtTaskStatePage(makVrv::DtDe& de, QWidget* parent, Qt::WindowFlags f = Qt::SubWindow);
109 
111  virtual ~DtTaskStatePage();
112 
114  virtual void addBehaviorGraphTab(const std::string& sScriptId);
115 
117  virtual QIcon icon();
118 
121  virtual makVrv::DtQIconConfigurations qIconConfigurations() const;
122 
124  virtual QString title();
125 
127  virtual const std::string& pageClassName() const;
128 
130  static const std::string& thePageClassName();
131 
132  virtual DtInformationDialogPageLogic* createLogic();
133 
135  static void setRightClicksEnabled(bool);
136  static bool rightClicksEnabled();
137 
139  virtual void removeBehaviorGraphTab(const std::string& sScriptId);
140 
142  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
143 
145  virtual bool showTitleWithWidget() const
146  {
147  return true;
148  }
149 
151  virtual void updateOrAddBehaviorGraph(const std::string& sScriptId, const std::string& sSvgContent);
152 
153  virtual QSize minimumSizeHint() const;
154  virtual void activate();
155  virtual void deactivate();
156 
157  virtual void disconnectSignals();
158  virtual void connectSignals();
159 
160  signals:
161 
162  void currentTabChanged(int, const std::string&);
163 
164  protected slots:
165 
167  virtual void onBehaviorGraphPopupClosing();
168 
170  virtual void onCurrentTabChanged(int);
171 
174  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent*);
175 
177  virtual void skipTask();
178  virtual void clearTask();
179 
181  virtual void cancelReactiveTask();
182 
183  protected:
185  virtual QWidget* createPageContents(ShowStatus& status);
186 
188  bool eventFilter(QObject *obj, QEvent *ev) override;
189 
191  virtual void spawnPopupGraphWidget();
192 
194  virtual void takeOwnership();
195 
198  virtual void takeOwnership(const std::string& sScriptId, DtQSvgView* pGraphView);
199 
201  virtual void transferOwnership();
202 
204  virtual void taskRightClick(DtTaskStateItem*, QMouseEvent*);
205  virtual void reactiveTaskRightClick(DtTaskStateItem*, QMouseEvent*);
206 
207  protected:
212 
215 
216  std::vector<std::string> myTabIndexToScriptIdTable;
218  std::map<std::string, DtQSvgView*> myGraphTabMap;
219  };
220 
223 
226  {
227  public:
229  DtTaskStateItem(makVrv::DtDe& de, DtUnitFormatter* formatter, const DtTaskStatePageLogic* logic);
230 
232  DtTaskStateItem(makVrv::DtDe& de, DtUnitFormatter* formatter, QTreeWidget* parent, const DtTaskStatePageLogic* logic);
233 
235  DtTaskStateItem(makVrv::DtDe& de, DtUnitFormatter* formatter, QTreeWidgetItem* parent, const DtTaskStatePageLogic* logic);
236 
238  virtual ~DtTaskStateItem();
239 
240  virtual void setTaskType(int, bool isSystemScript);
241 
242  virtual int taskType() const
243  {
244  return myTaskType;
245  }
246 
248  {
249  return myTask;
250  }
251 
253  {
254  myTask = task;
255  }
256 
258  {
259  myScriptedSet = set;
260  }
261 
263  virtual void setActive(bool);
264  virtual bool active() const
265  {
266  return myActive;
267  }
268 
270  virtual void setEnabled(bool);
271  virtual bool enabled() const
272  {
273  return myEnabled;
274  }
275 
276  virtual DtSimTaskMessageType vrfTaskType() const;
277 
278  virtual void setScriptId(const DtSimTaskMessageType& id)
279  {
280  myScriptId = id;
281  }
282 
283  virtual const DtSimTaskMessageType& scriptId() const
284  {
285  return myScriptId;
286  }
287 
288  virtual void setSuspended(bool);
289  virtual bool suspended() const
290  {
291  return mySuspended;
292  }
293 
294  virtual int priority() const;
295 
296  virtual void setCategories(const std::set<std::string>&);
297  virtual const DtString& categories() const
298  {
299  return myCategories;
300  }
301 
302  virtual void setController(const DtString&);
303  virtual const DtString& controller() const;
304 
305  virtual QVariant data(int col, int role) const;
306 
307  virtual void expandFully();
308 
309  protected:
314  bool myActive;
316  bool myEnabled;
323  std::string myDataIcon;
325  };
326 
329  {
330  public:
334 
336  virtual ~DtTaskStatusInformationItem();
337  static std::string creatorName();
338 
339  protected:
341  virtual void deactivate();
342  virtual QVariant value(int col, int role, const QTreeWidgetItem*,
344  virtual bool valueNeedsUpdate(int col, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
345  virtual QWidget* widgetRepresentation(QWidget* parent, makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
346  virtual void showInformationFor(std::string s);
347  virtual bool mouseReleaseEvent();
348  virtual bool mouseEnterEvent();
349  virtual bool mouseLeaveEvent();
350 
351  public:
353  };
354 
356  }
357 }
The logic for this page. Will subscribe/unsubscribe from registering for task messages.
Definition: taskStatePageLogic.h:53
virtual void setCategories(const std::set< std::string > &)
DtVrfCurrentTaskManager::DtSimTaskSharedPtr task() const
Definition: taskStatePage.h:247
virtual const DtString & controller() const
Definition: DtQSvgView.h:76
DtBehaviorGraphDialog * pMyBehaviorGraphPopupDialog
Definition: taskStatePage.h:214
virtual DtSimTaskMessageType vrfTaskType() const
virtual bool showTitleWithWidget() const
Says this should have the title before the widget.
Definition: taskStatePage.h:145
The DtTaskStatePage class will show information for all currently running tasks and reactive tasks th...
Definition: taskStatePage.h:101
virtual QVariant data(int col, int role) const
virtual int taskType() const
Definition: taskStatePage.h:242
bool myIsSystemScript
Definition: taskStatePage.h:322
const DtTaskStatePageLogic * myLogic
Definition: taskStatePage.h:324
DtVrfCurrentTaskManager::DtSetDataRequestSharedPtr myScriptedSet
Definition: taskStatePage.h:313
std::string myDataIcon
Definition: taskStatePage.h:323
virtual void setActive(bool)
Active implies enabled.
QVBoxLayout * pMyWidgetLayout
Definition: taskStatePage.h:91
makVrv::DtPageCreatorTemplate< DtTaskStatePage > DtTaskStatePageCreator
Definition: taskStatePage.h:222
DtString myCategories
Definition: taskStatePage.h:319
Definition: DtPage.h:150
bool myEnabled
Definition: taskStatePage.h:316
DtUnitFormatter * myUnitFormatter
Definition: taskStatePage.h:311
Contains makVrv::DtInformationDialogPage class.
int myPriority
Definition: taskStatePage.h:318
std::vector< std::string > myTabIndexToScriptIdTable
Definition: taskStatePage.h:216
DtVrfCurrentTaskManager::DtSimTaskSharedPtr myTask
Definition: taskStatePage.h:312
DtSimTaskMessageType myScriptId
Definition: taskStatePage.h:321
QLabel * pMyGraphInformationLabel
Definition: taskStatePage.h:211
virtual void setEnabled(bool)
If enabled, does not need to be active.
makVrv::DtDe & myDe
Definition: taskStatePage.h:310
virtual const DtSimTaskMessageType & scriptId() const
Definition: taskStatePage.h:283
DtBoost::shared_ptr< DtSetDataRequest > DtSetDataRequestSharedPtr
Definition: vrfCurrentTaskManager.h:45
DtItemUpdateFunctionCreator< DtTaskStatusInformationItem > DtTaskStatusInformationItemCreator
Definition: taskStatePage.h:355
bool mySuspended
Definition: taskStatePage.h:315
QTabWidget * pMyTabWidget
Definition: taskStatePage.h:209
DtTaskStateItem is the tree widget item that will be used to display task information.
Definition: taskStatePage.h:225
QTabWidget * pMyTabWidget
Definition: taskStatePage.h:90
Base class to provide boost signal/slot management.
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:24
virtual void setTask(DtVrfCurrentTaskManager::DtSimTaskSharedPtr task)
Definition: taskStatePage.h:252
std::vector< std::string > myTabIndexToScriptIdTable
Definition: taskStatePage.h:93
virtual const DtString & categories() const
Definition: taskStatePage.h:297
virtual void setTaskType(int, bool isSystemScript)
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
int myTaskType
Definition: taskStatePage.h:317
DtString myController
Definition: taskStatePage.h:320
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:75
virtual bool suspended() const
Definition: taskStatePage.h:289
!!!!!!!!!!!!!!! DtTaskStatusInformationItem
Definition: taskStatePage.h:328
Definition: unitFormatter.h:24
std::map< std::string, DtQSvgView * > myGraphTabMap
std::map&lt;std::string, QSvgWidget*&gt; myGraphTabMap;
Definition: taskStatePage.h:218
QVBoxLayout * pMyTaskStateAndGraphWidgetLayout
Definition: taskStatePage.h:210
virtual void setScriptId(const DtSimTaskMessageType &id)
Definition: taskStatePage.h:278
QWidget * pMyTaskStateAndGraphWidget
Definition: taskStatePage.h:208
virtual bool active() const
Definition: taskStatePage.h:264
virtual void setScriptedSet(DtVrfCurrentTaskManager::DtSetDataRequestSharedPtr set)
Definition: taskStatePage.h:257
virtual bool enabled() const
Definition: taskStatePage.h:271
DtBoost::shared_ptr< DtSimTask > DtSimTaskSharedPtr
Definition: vrfCurrentTaskManager.h:44
std::map< std::string, DtQSvgView * > myGraphTabMap
std::map&lt;std::string, QSvgWidget*&gt; myGraphTabMap;
Definition: taskStatePage.h:95
bool myActive
Definition: taskStatePage.h:314
DtTaskStatePage * myPage
Definition: taskStatePage.h:352
DtTaskStateItem(makVrv::DtDe &de, DtUnitFormatter *formatter, const DtTaskStatePageLogic *logic)
CTOR.
makVrv::DtDe & myDe
Definition: taskStatePage.h:88

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)