VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
taskMoveAlongRouteWithActionsDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
14 #include <vrvUtil/signalslib.h>
20 #endif
21 #include <boost/signals2.hpp>
22 
23 class QCheckBox;
24 class QTreeWidgetItem;
25 class QMenu;
26 class QDialog;
27 class DtSetDataRequest;
28 class DtSimTask;
30 class QPushButton;
31 class QHBoxLayout;
32 class QGridLayout;
33 class QTime;
35 class DtVertexList;
37 
38 namespace makVrv
39 {
40  class DtMenu;
41  class DtSimEntry;
42 }
43 
44 namespace makVrf
45 {
46  class DtDateTimeEntryWidget;
47  class DtTerrainProfileDataEnvironmentalStateView;
48  class DtRouteProfileWidget;
49  class DtEnvironmentalFacadeCollection;
50  class DtVrfTaskSetMenu;
51 
53  {
54  Q_OBJECT
55  public:
56 
58  {
59  InvalidActionType = 0,
64  TargetPointType
65  };
66 
68  {
74  int markerId;
75  };
76 
77  //CTOR
78  DtTaskMoveAlongRouteWithActionsDialog(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);
79 
80  //DTOR
82 
84  virtual void setReverseDirection(bool);
85  virtual bool reverseDirection() const;
86 
88  virtual void setMoveToClosestVertex(bool);
89  virtual bool moveToClosestVertex() const;
90 
92  virtual void setAbandonIfTimeNotAchievable(bool);
93  virtual bool abandonIfTimeNotAchievable() const;
94 
95  protected:
96  virtual QWidget* contents(const std::vector<makVrv::DtSimEntry*>& data);
97 
98  virtual void initializeItems(const std::vector<makVrv::DtSimEntry*>& data);
99 
100  virtual void sendRequest();
101 
102  virtual void routeSelected(const std::vector<DtObjectListViewItem::DtVrfObjectState>&);
103 
104  virtual void setupStatement(const DtSimStatement*);
105  virtual void initializeSelectionFilters();
106  virtual void setupGui(const std::vector<makVrv::DtSimEntry*>& data);
107 
109  virtual void profileGraphReady();
110 
112  virtual void dataStatusChanged();
113 
115  virtual void dataRemoved();
116 
118  virtual void stateViewAboutToBeRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>&);
119 
121  virtual QTreeWidgetItem* insertNewActionAtLastClickedDatabaseLocation(const DtVector& location, ActionType actionType);
122 
124  virtual QTreeWidgetItem* insertNewActionOnRoute(ActionType actionType, int vertex, double fractionAfter, bool reorder = true);
125 
127  virtual QTreeWidgetItem* insertNewActionAtPlotLocation(ActionType actionType);
128 
130  virtual QTreeWidgetItem* insertNewActionAtListLocation(ActionType actionType);
131 
133  virtual void updateVerticesInList();
134 
136  virtual void reorderActions();
137 
139  virtual void calculateTimeEstimates();
140 
142  virtual void updateAfterReplot(int flags);
143 
145  virtual void createTemporaryRoute(makVrv::DtUniqueID);
146  virtual void removeTemporaryRoute();
147  virtual void slot_temporaryRouteCreationComplete(makVrv::DtUniqueID id);
148  virtual void updateTemporaryRoutePoints(int flags);
149 
150  virtual void hideSceneObject(bool);
151 
152  virtual void slot_contextMenuAboutToBeShown(QMenu*, const makVrv::DtSelectionManager::IdSet&);
153 
154  virtual bool eventFilter(QObject* o, QEvent*);
155 
156  virtual void completeActionMove(const DtVector&);
157  virtual void selectionChangedDuringMove();
158 
159  virtual void cleanupTaskSet(ActionInformation*);
160 
161  virtual void getRouteActions(DtRwRouteActionList& actionList, bool reversePositions = false) const;
162  virtual void getRouteVertices(DtVertexList& vertexList) const;
163 
165  virtual void createTimeEstimator(const std::vector <makVrv::DtSimEntry*> & data);
166 
168  virtual bool valid() const;
169 
170  time_t currentTimeOfDay() const;
171  time_t currentTimeOnTarget() const;
172  QTime toQTime(time_t t) const;
173 
174  protected slots:
175  virtual void reverseRoute();
176  virtual void reverseActions();
177 
178  virtual void editAction();
179  virtual void removeAction();
180  virtual void moveAction();
181 
182  virtual void actionSelectionChanged();
183 
184  virtual void vertexSelectedOnProfile(unsigned vertexIndex, unsigned buttonId);
185  virtual void routeMarkerSelected(unsigned markerId, unsigned buttonId);
186  virtual void routeMarkerMoved(unsigned markerId, unsigned afterVertex, double fractionAfter);
187  virtual void routeProfileClicked(unsigned afterVertex, double fractionAfter, unsigned buttonId);
188 
189  virtual void timeOnTargetSpecified(bool isSpecified);
190  virtual void timeOnTargetUpdated();
191 
192  virtual void routeProfileContextMenuRequested(QPoint);
193 
194  virtual void actionListContextMenuRequested(QPoint);
195 
196  virtual void slot_vertexSelected(int, bool);
197 
198  virtual int vertexIndex(QTreeWidgetItem*) const;
199  virtual void cancelMove();
200 
201  virtual void createTaskMenu();
202  virtual void createSetMenu();
203  virtual void setupFrom(const std::vector<makVrv::DtSimEntry*>& s);
204  virtual void finalizeMenuSetup(DtVrfTaskSetMenu* m);
205 
206  virtual void slot_addSetRequest(std::vector<DtUUID> names, const DtSetDataRequest& s);
207  virtual void slot_addTaskRequest(std::vector<DtUUID> names, const DtSimTask& s);
208  virtual void slot_onEditSetRequest(std::vector<DtUUID> names, const DtSetDataRequest& s);
209  virtual void slot_onEditTaskRequest(std::vector<DtUUID> names, const DtSimTask& t);
210 
211  virtual QTreeWidgetItem* insertNewAction(ActionType actionType);
212  virtual QString actionLabel(QTreeWidgetItem*) const;
213  virtual QString actionToolTip(QTreeWidgetItem*) const;
214 
215  virtual bool isTaskOrSet(QTreeWidgetItem* i) const;
216  virtual void slot_onDialogCreated();
217  virtual void slot_onDialogDestroyed();
218 
219  virtual void setupItem(QTreeWidgetItem* newItem, const DtSimTask& t);
220  virtual void setupItem(QTreeWidgetItem* newItem, const DtSetDataRequest& s);
221  virtual void restoreFromMovementTask();
222  virtual void selectCreatedAction();
223 
224  ActionInformation* actionInfoForItem(QTreeWidgetItem* item);
225  const ActionInformation* actionInfoForItem(const QTreeWidgetItem* item) const;
226  ActionInformation* createActionInfoForItem(QTreeWidgetItem* item);
227  void swapActionInfo(QTreeWidgetItem* item1, QTreeWidgetItem* item2);
228 
229  protected:
230 
237  QHBoxLayout* myTimeOnTargetLayout;
240 
241  std::vector<ActionInformation> myActionInformation;
242 
245 
248 
254 
260 
262 
263  unsigned myLabelCount;
264  QGridLayout* myGridLayout;
265 
267 
268  static const QString theNewTaskString;
269  static const QString theNewSetString;
270 
273 
279  boost::signals2::connection myStateViewConnection;
280  boost::signals2::connection myContextMenuConnection;
281  boost::signals2::connection myRouteVertexSelectedConnection;
282  boost::signals2::connection mySelectionConnection;
283 
287 
294  std::vector<makVrv::DtSimEntry*> myTasking;
298 
300  unsigned myHoldMarkerId;
301  };
302 
304  {
305  public:
306  virtual DtTaskSetDialogInterface* create(makVrv::DtDe&, QWidget* parent);
307  bool supportsType(makVrv::DtDe&, const DtSimTaskMessageType&, const DtSimStatement*) const;
308  };
309 }
int markerId
Definition: taskMoveAlongRouteWithActionsDialog.h:74
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
QAction * myRemoveFromPlotAction
Definition: taskMoveAlongRouteWithActionsDialog.h:259
makVrv::DtUniqueID myRouteId
Definition: taskMoveAlongRouteWithActionsDialog.h:284
Definition: environmentalFacadeCollection.h:66
DtVector myRouteClickedLocation
Definition: taskMoveAlongRouteWithActionsDialog.h:292
Definition: vrfTaskSetMenu.h:51
std::vector< makVrv::DtSimEntry * > myTasking
Definition: taskMoveAlongRouteWithActionsDialog.h:294
DtMoveAlongRouteTimeEstimator * myEstimator
Definition: taskMoveAlongRouteWithActionsDialog.h:297
Definition: taskMoveAlongRouteWithActionsDialog.h:61
Performs time estimates for move along route with actions tasks.
Definition: moveAlongRouteTimeEstimator.h:50
Definition: taskMoveAlongRouteWithActionsDialog.h:52
boost::signals2::connection mySelectionConnection
Definition: taskMoveAlongRouteWithActionsDialog.h:282
unsigned myLabelCount
Definition: taskMoveAlongRouteWithActionsDialog.h:263
DtUUID myRouteUUID
Definition: taskMoveAlongRouteWithActionsDialog.h:285
bool myReverseDirectionFlag
Definition: taskMoveAlongRouteWithActionsDialog.h:278
Definition: rwRouteActionList.h:19
QMenu * myContextMenu
Definition: taskMoveAlongRouteWithActionsDialog.h:255
makVrv::DtSignalConnectionManager myMoveConnections
Definition: taskMoveAlongRouteWithActionsDialog.h:288
Definition: taskSetDialogInterface.h:83
Contains makVrv:DtSelectionManager class.
DtSimTask * task
Definition: taskMoveAlongRouteWithActionsDialog.h:72
makVrv::DtUniqueID myEntityToTask
Definition: taskMoveAlongRouteWithActionsDialog.h:266
DtMoveAlongWithActionsTask * myMovementTaskToRestore
Definition: taskMoveAlongRouteWithActionsDialog.h:295
bool myNeedHoldAndTargetPoints
Definition: taskMoveAlongRouteWithActionsDialog.h:276
boost::signals2::connection myRouteVertexSelectedConnection
Definition: taskMoveAlongRouteWithActionsDialog.h:281
QTreeWidgetItem * myHoldPointItem
Definition: taskMoveAlongRouteWithActionsDialog.h:246
QGridLayout * myGridLayout
Definition: taskMoveAlongRouteWithActionsDialog.h:264
Definition: routeProfileWidget.h:19
bool myIgnoreSelection
Definition: taskMoveAlongRouteWithActionsDialog.h:274
bool myInMoveMode
Definition: taskMoveAlongRouteWithActionsDialog.h:286
QAction * myMoveAction
Definition: taskMoveAlongRouteWithActionsDialog.h:253
int vertexPosition
Definition: taskMoveAlongRouteWithActionsDialog.h:70
!!!!!!!!!!!!!!!!! DtMoveAlongWithActionsTask Move along task with a list of sets and tasks ...
Definition: moveAlongTasks.h:171
unsigned myHoldMarkerId
Definition: taskMoveAlongRouteWithActionsDialog.h:300
QCheckBox * myAbandonIfTimeNotAchievable
Definition: taskMoveAlongRouteWithActionsDialog.h:235
DtSetDataRequest is an abstract base class from which real setDataRequests can derive.
Definition: setDataRequest.h:40
QPushButton * myReverseActionsButton
Definition: taskMoveAlongRouteWithActionsDialog.h:244
QTreeWidgetItem * myItemToSelectAfterRouteUpdate
Definition: taskMoveAlongRouteWithActionsDialog.h:296
static const QString theNewTaskString
Definition: taskMoveAlongRouteWithActionsDialog.h:268
makVrv::DtSignalConnectionManager myConnectionManager
Definition: taskMoveAlongRouteWithActionsDialog.h:289
ActionType actionType
Definition: taskMoveAlongRouteWithActionsDialog.h:69
class DtVertexList:
Definition: vertexList.h:22
QCheckBox * myMoveToClosestVertexCheckBox
Definition: taskMoveAlongRouteWithActionsDialog.h:236
QHBoxLayout * myTimeOnTargetLayout
Definition: taskMoveAlongRouteWithActionsDialog.h:237
DtDateTimeEntryWidget * myTimeOnTarget
Definition: taskMoveAlongRouteWithActionsDialog.h:234
Definition: taskMoveAlongRouteWithActionsDialog.h:60
Definition: taskMoveAlongRouteWithActionsDialog.h:63
QCheckBox * mySpecifyTimeOnTargetCheckBox
Definition: taskMoveAlongRouteWithActionsDialog.h:233
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
static const QString theNewSetString
Definition: taskMoveAlongRouteWithActionsDialog.h:269
QAction * myEditAction
Definition: taskMoveAlongRouteWithActionsDialog.h:251
ActionType
Definition: taskMoveAlongRouteWithActionsDialog.h:57
Class that is used as a template for task/set dialogs.
Definition: taskSetDialogInterface.h:45
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtVrfTaskSetMenu * mySetMenu
Definition: taskMoveAlongRouteWithActionsDialog.h:291
QDialog * myMoveDialog
Definition: taskMoveAlongRouteWithActionsDialog.h:261
QAction * myInsertSetAction
Definition: taskMoveAlongRouteWithActionsDialog.h:250
Contains the makVrf::DtTerrainProfileDataStateView class.
Definition: terrainProfileDataEnvironmentalStateView.h:22
Definition: baseFilteredListViewTaskSetDialog.h:34
QHBoxLayout * myAbandonIfTimeNotAchievableLayout
Definition: taskMoveAlongRouteWithActionsDialog.h:238
QAction * myEditFromPlotAction
Definition: taskMoveAlongRouteWithActionsDialog.h:258
Definition: taskMoveAlongRouteWithActionsDialog.h:303
QPoint myRouteProfileClickedLocation
Definition: taskMoveAlongRouteWithActionsDialog.h:293
DtVrfTaskSetMenu * myTaskMenu
Definition: taskMoveAlongRouteWithActionsDialog.h:290
DtRouteProfileWidget * myRouteProfile
Definition: taskMoveAlongRouteWithActionsDialog.h:231
Base class to provide boost signal/slot management.
class DtSimStatement:
Definition: simStatement.h:35
QTreeWidgetItem * myTargetPointItem
Definition: taskMoveAlongRouteWithActionsDialog.h:247
unsigned myTargetMarkerId
Definition: taskMoveAlongRouteWithActionsDialog.h:299
DtSimTask is an abstract base class from which real tasks can derive.
Definition: simTask.h:31
DtSetDataRequest * set
Definition: taskMoveAlongRouteWithActionsDialog.h:73
QAction * myInsertTaskAction
Definition: taskMoveAlongRouteWithActionsDialog.h:249
DtEnvironmentalFacadeCollection * myRoute
Definition: taskMoveAlongRouteWithActionsDialog.h:272
QLabel * myEndTimeLabel
Definition: taskMoveAlongRouteWithActionsDialog.h:239
std::vector< ActionInformation > myActionInformation
Definition: taskMoveAlongRouteWithActionsDialog.h:241
DtTerrainProfileDataEnvironmentalStateView * myDataProvider
Definition: taskMoveAlongRouteWithActionsDialog.h:271
QAction * myRemoveAction
Definition: taskMoveAlongRouteWithActionsDialog.h:252
double fractionalPosition
Definition: taskMoveAlongRouteWithActionsDialog.h:71
boost::signals2::connection myStateViewConnection
Definition: taskMoveAlongRouteWithActionsDialog.h:279
boost::signals2::connection myContextMenuConnection
Definition: taskMoveAlongRouteWithActionsDialog.h:280
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QTreeWidget * myActionsList
Definition: taskMoveAlongRouteWithActionsDialog.h:232
QPushButton * myReverseRouteButton
Definition: taskMoveAlongRouteWithActionsDialog.h:243
#define DT_DLL_VRFGUITASKSETQT
Definition: vrfGuiTaskSetQt.h:22
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
bool myChangeRouteVertexSelection
Definition: taskMoveAlongRouteWithActionsDialog.h:275
Widget that allows users to enter date/time values.
Definition: dateTimeEntryWidget.h:25
int myPartOfPlanDialog
This is set to 4 to show the additional checkbox field in set ordered speed action.
Definition: taskMoveAlongRouteWithActionsDialog.h:257
bool myProcessDataStatusChangeNeeded
Definition: taskMoveAlongRouteWithActionsDialog.h:277
Definition: taskMoveAlongRouteWithActionsDialog.h:62
Definition: taskMoveAlongRouteWithActionsDialog.h:67

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)