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 
193  virtual void setSignalTaskSetRequests(bool b);
194 
195  bool signalTaskSetRequests() const
196  {
197  return mySignalTaskSetRequests;
198  }
199 
200  int partOfPlanDialog() const
201  {
202  return myPartOfPlanDialog;
203  }
204 
205  const makVrv::DtSelectionManager::IdSet& entitySet() const
206  {
207  return myEntitySet;
208  }
209 
211  virtual makVrv::DtSelectionManager::IdSet selectionsToUseForTaskSetDialog() const;
212 
214  const makVrv::DtSelectionManager::IdSet& validatingFor() const
215  {
216  return myValidatedFor;
217  }
218 
219  void setParentMenu(DtVrfTaskSetMenu* p)
220  {
221  myParentMenu = p;
222  }
223 
224  DtVrfTaskSetMenu* parentMenu()
225  {
226  return myParentMenu;
227  }
228 
230  virtual void clearMenu();
231 
235  virtual bool updateSubMenuVisibilityState(QMenu*);
236 
237  typedef std::map<int, std::set<QAction*> > TaskActions;
238 
239  const TaskActions& taskActions() { return myTaskSetActions; };
240 
241  public:
242  boost::signal<void (std::vector<DtUUID> names, const DtSetDataRequest&)> signal_sendSetRequest;
243  boost::signal<void (std::vector<DtUUID> names, const DtSimTask&)> signal_sendTaskRequest;
244  boost::signal<void (QAction*)> signal_validateMenuItem;
245  boost::signal<void ()> signal_menuValidated;
246 
247  virtual void slot_sendSetRequest(std::vector<DtUUID> names, const DtSetDataRequest& s);
248  virtual void slot_sendTaskRequest(std::vector<DtUUID> names, const DtSimTask& s);
249 
251  virtual void slot_createTaskSetDialog(int menuItemType, QWidget*, DtVrfTaskSetAction*,
252  const std::vector<makVrv::DtSimEntry*>&, int);
253  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
254  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createTaskSetDialog;
255 
256 
258  virtual void signalCommandDialogCreation(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction,
259  const std::vector<makVrv::DtSimEntry*>& data, int partOfPlan);
260  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
261  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createCommandDialog;
262 
265  virtual void mergeChangesFrom(const std::string& menu, const DtSubMenuConfiguration&, DtSubMenuConfiguration&,
266  bool maintainOriginalOrder = false);
267 
268  public slots:
269  virtual void validate();
270 
271  protected slots:
272  virtual void radioMenuDestroyed();
273 
274  protected:
277  virtual void renameIfDuplicate(QAction*);
278 
281  virtual QString alternateName(QAction*) const;
282 
285  virtual void revalidate(makVrv::DtUniqueID);
286 
287  virtual bool eventFilter(QObject *, QEvent *);
288  virtual void actionAdded(QEvent*);
289  virtual void addTaskAction(QAction*);
290  virtual void rebuildToolbar(const std::string&);
291 
292  virtual void validateMenuItems(int terrainPatchOffset);
293  virtual void slot_backendUpdated(const DtVrfBackendState&, int);
294  virtual bool available(int menu, std::vector<int>& l) const;
295 
298  virtual void availableMenuItems(
299  const makVrv::DtSelectionManager::IdSet& selections,
300  std::vector<int>& available,
301  bool noTaskSetValueMeansAll);
302 
304  virtual bool enableForEnvironmentals() const;
305 
306  virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
307 
310  virtual std::vector<DtUUID> whoShouldITask(const std::vector<DtUUID>& name, const DtSimTask& newTask);
311 
312  virtual void destroyActions(const QList<QAction*>& actions);
313 
314  virtual void stateRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
315 
316  protected:
325  std::vector<DtVrfTaskSetMenu*> myRadioMenus;
327  std::string myClassName;
331  };
332 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)