VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfTaskSetMenu.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <vrfutil/rwUUID.h>
12 
13 #include <vrvCoreQt/DtMenuItem.h>
15 #include <vrvCore/DtStateView.h>
16 #include <vrvCore/DtEntityState.h>
17 
18 #include <QtGui/QAction>
19 
20 class QEvent;
21 class DtSetDataRequest;
22 class DtSimTask;
23 class QToolBar;
24 
25 namespace makVrv
26 {
27  class DtSimEntry;
28 }
29 
30 namespace makVrf
31 {
32  class DtVrfBackendState;
33  class DtVrfTaskSetMenu;
34 
42  {
43  Q_OBJECT
44 
45  public:
49  DtVrfTaskSetMenuItem(const std::string&, makVrv::DtDe&, bool addToolbarItem = true);
50 
52  virtual ~DtVrfTaskSetMenuItem();
53 
54  protected:
65  virtual QAction* registerMenuItem(const QString& title, QWidget* parent, int iAction, const QString& iconBaseName);
66 
68  virtual void on_triggered();
69 
70  protected:
72  };
73 
79  {
80  Q_OBJECT
81 
82  public:
86 
88  virtual ~DtVrfTaskSetAction();
89 
92  void setParentMenu(DtVrfTaskSetMenu* p)
93  {
94  myParentMenu = p;
95  }
96 
99  DtVrfTaskSetMenu* parentMenu()
100  {
101  return myParentMenu;
102  }
103 
104  public:
108  virtual void slot_onSendSetRequest(std::vector<DtUUID> names, const DtSetDataRequest&);
109 
114  boost::signal<void (std::vector<DtUUID> names, const DtSetDataRequest&)> signal_sendSetRequest;
115 
119  virtual void slot_onSendTaskRequest(std::vector<DtUUID> names, const DtSimTask&);
120 
125  boost::signal<void (std::vector<DtUUID> names, const DtSimTask&)> signal_sendTaskRequest;
126 
134  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
135  const std::vector<makVrv::DtSimEntry*>&, bool)> signal_createTaskSetDialog;
136 
137  public:
140  virtual void on_triggered();
141 
142  protected:
145  };
146 
154  {
155  Q_OBJECT
156 
157  public:
158 
160  DtVrfTaskSetMenu(const std::string& className, const QString& title, QWidget* parent, makVrv::DtDe&);
161 
163  virtual ~DtVrfTaskSetMenu();
164 
165  virtual void setValidate(bool b);
166 
168  virtual void setShowAllItems(bool b);
169 
175  virtual void setPartOfPlanDialog(int b);
176  virtual void setEntitySet(const makVrv::DtSelectionManager::IdSet& set);
177  virtual void setMenuItemValidation(bool b);
178 
181  virtual void setHideDisabledItem(bool yesNo);
182 
184  virtual void setSignalDialogCreation(bool b);
185 
186  bool signalDialogCreation() const
187  {
188  return mySignalDialogCreation;
189  }
190 
191  virtual void setValidationsDisabled(bool);
192  bool validationsDisabled() const
193  {
194  return myValidationsDisabled;
195  }
196 
199  virtual void setSignalTaskSetRequests(bool b);
200 
201  bool signalTaskSetRequests() const
202  {
203  return mySignalTaskSetRequests;
204  }
205 
206  int partOfPlanDialog() const
207  {
208  return myPartOfPlanDialog;
209  }
210 
211  const makVrv::DtSelectionManager::IdSet& entitySet() const
212  {
213  return myEntitySet;
214  }
215 
217  virtual makVrv::DtSelectionManager::IdSet selectionsToUseForTaskSetDialog() const;
218 
220  const makVrv::DtSelectionManager::IdSet& validatingFor() const
221  {
222  return myValidatedFor;
223  }
224 
225  void setParentMenu(DtVrfTaskSetMenu* p)
226  {
227  myParentMenu = p;
228  }
229 
230  DtVrfTaskSetMenu* parentMenu()
231  {
232  return myParentMenu;
233  }
234 
236  virtual void clearMenu();
237 
241  virtual bool updateSubMenuVisibilityState(QMenu*);
242 
243  typedef std::map<int, std::set<QAction*> > TaskActions;
244 
245  const TaskActions& taskActions() { return myTaskSetActions; };
246 
247  public:
248  boost::signal<void (std::vector<DtUUID> names, const DtSetDataRequest&)> signal_sendSetRequest;
249  boost::signal<void (std::vector<DtUUID> names, const DtSimTask&)> signal_sendTaskRequest;
250  boost::signal<void (QAction*)> signal_validateMenuItem;
251  boost::signal<void ()> signal_menuValidated;
252 
253  virtual void slot_sendSetRequest(std::vector<DtUUID> names, const DtSetDataRequest& s);
254  virtual void slot_sendTaskRequest(std::vector<DtUUID> names, const DtSimTask& s);
255 
257  virtual void slot_createTaskSetDialog(int menuItemType, QWidget*, DtVrfTaskSetAction*,
258  const std::vector<makVrv::DtSimEntry*>&, int);
259  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
260  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createTaskSetDialog;
261 
262 
264  virtual void signalCommandDialogCreation(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction,
265  const std::vector<makVrv::DtSimEntry*>& data, int partOfPlan);
266  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
267  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createCommandDialog;
268 
271  virtual void mergeChangesFrom(const std::string& menu, const DtSubMenuConfiguration&, DtSubMenuConfiguration&,
272  bool maintainOriginalOrder = false);
273 
274  public slots:
275  virtual void validate();
276 
277  protected slots:
278  virtual void radioMenuDestroyed();
279 
280  protected:
283  virtual void renameIfDuplicate(QAction*);
284 
287  virtual QString alternateName(QAction*) const;
288 
291  virtual void revalidate(makVrv::DtUniqueID);
292 
293  virtual bool eventFilter(QObject *, QEvent *);
294  virtual void actionAdded(QEvent*);
295  virtual void addTaskAction(QAction*);
296  virtual void rebuildToolbar(const std::string&);
297 
298  virtual void validateMenuItems(int terrainPatchOffset);
299  virtual void slot_backendUpdated(const DtVrfBackendState&, int);
300  virtual bool available(int menu, std::vector<int>& l) const;
301 
304  virtual void availableMenuItems(
305  const makVrv::DtSelectionManager::IdSet& selections,
306  std::vector<int>& available,
307  bool noTaskSetValueMeansAll);
308 
310  virtual bool enableForEnvironmentals() const;
311 
312  virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
313 
316  virtual std::vector<DtUUID> whoShouldITask(const std::vector<DtUUID>& name, const DtSimTask& newTask);
317 
318  virtual void destroyActions(const QList<QAction*>& actions);
319 
320  virtual void stateRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
321 
322  protected:
332  std::vector<DtVrfTaskSetMenu*> myRadioMenus;
334  std::string myClassName;
338  };
339 }

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)