VR-Forces 4.3.1 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 
12 #include <vrvCoreQt/DtMenuItem.h>
14 
15 #include <QtGui/QAction>
16 
17 class QEvent;
18 class DtSetDataRequest;
19 class DtSimTask;
20 
21 namespace makVrv
22 {
23  class DtSimEntry;
24 }
25 
26 namespace makVrf
27 {
28  class DtVrfBackendState;
29  class DtVrfTaskSetMenu;
30 
38  {
39  Q_OBJECT
40 
41  public:
45  DtVrfTaskSetMenuItem(const std::string&, makVrv::DtDe&, bool addToolbarItem = true);
46 
48  virtual ~DtVrfTaskSetMenuItem();
49 
50  protected:
61  virtual QAction* registerMenuItem(const QString& title, QWidget* parent, int iAction, const QString& iconBaseName);
62 
64  virtual void on_triggered();
65 
66  protected:
68  };
69 
75  {
76  Q_OBJECT
77 
78  public:
82 
84  virtual ~DtVrfTaskSetAction();
85 
88  void setParentMenu(DtVrfTaskSetMenu* p)
89  {
90  myParentMenu = p;
91  }
92 
95  DtVrfTaskSetMenu* parentMenu()
96  {
97  return myParentMenu;
98  }
99 
100  public:
104  virtual void slot_onSendSetRequest(std::vector<std::string> names, const DtSetDataRequest&);
105 
110  boost::signal<void (std::vector<std::string> names, const DtSetDataRequest&)> signal_sendSetRequest;
111 
115  virtual void slot_onSendTaskRequest(std::vector<std::string> names, const DtSimTask&);
116 
121  boost::signal<void (std::vector<std::string> names, const DtSimTask&)> signal_sendTaskRequest;
122 
130  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
131  const std::vector<makVrv::DtSimEntry*>&, bool)> signal_createTaskSetDialog;
132 
133  public:
136  virtual void on_triggered();
137 
138  protected:
141  };
142 
150  {
151  Q_OBJECT
152 
153  public:
154 
156  DtVrfTaskSetMenu(const std::string& className, const QString& title, QWidget* parent, makVrv::DtDe&);
157 
159  virtual ~DtVrfTaskSetMenu();
160 
161  virtual void setValidate(bool b);
162 
168  virtual void setPartOfPlanDialog(int b);
169  virtual void setEntitySet(const makVrv::DtSelectionManager::IdSet& set);
170  virtual void setMenuItemValidation(bool b);
171 
174  virtual void setHideDisabledItem(bool yesNo);
175 
177  virtual void setSignalDialogCreation(bool b);
178 
179  bool signalDialogCreation() const
180  {
181  return mySignalDialogCreation;
182  }
183 
186  virtual void setSignalTaskSetRequests(bool b);
187 
188  bool signalTaskSetRequests() const
189  {
190  return mySignalTaskSetRequests;
191  }
192 
193  int partOfPlanDialog() const
194  {
195  return myPartOfPlanDialog;
196  }
197 
198  const makVrv::DtSelectionManager::IdSet& entitySet() const
199  {
200  return myEntitySet;
201  }
202 
204  virtual makVrv::DtSelectionManager::IdSet selectionsToUseForTaskSetDialog() const;
205 
207  const makVrv::DtSelectionManager::IdSet& validatingFor() const
208  {
209  return myValidatedFor;
210  }
211 
212  void setParentMenu(DtVrfTaskSetMenu* p)
213  {
214  myParentMenu = p;
215  }
216 
217  DtVrfTaskSetMenu* parentMenu()
218  {
219  return myParentMenu;
220  }
221 
223  virtual void clearMenu();
224 
228  virtual bool updateSubMenuVisibilityState(QMenu*);
229 
230  public:
231  boost::signal<void (std::vector<std::string> names, const DtSetDataRequest&)> signal_sendSetRequest;
232  boost::signal<void (std::vector<std::string> names, const DtSimTask&)> signal_sendTaskRequest;
233  boost::signal<void (QAction*)> signal_validateMenuItem;
234 
235  virtual void slot_sendSetRequest(std::vector<std::string> names, const DtSetDataRequest& s);
236  virtual void slot_sendTaskRequest(std::vector<std::string> names, const DtSimTask& s);
237 
239  virtual void slot_createTaskSetDialog(int menuItemType, QWidget*, DtVrfTaskSetAction*,
240  const std::vector<makVrv::DtSimEntry*>&, int);
241  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
242  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createTaskSetDialog;
243 
244 
246  virtual void signalCommandDialogCreation(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction,
247  const std::vector<makVrv::DtSimEntry*>& data, int partOfPlan);
248  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
249  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createCommandDialog;
250 
253  virtual void mergeChangesFrom(const std::string& menu, const DtSubMenuConfiguration&, DtSubMenuConfiguration&,
254  bool maintainOriginalOrder = false);
255 
256  public slots:
257  virtual void validate();
258 
259  protected:
262  virtual void renameIfDuplicate(QAction*);
263 
266  virtual QString alternateName(QAction*) const;
267 
270  virtual void revalidate(makVrv::DtUniqueID);
271 
272  virtual bool eventFilter(QObject *, QEvent *);
273  virtual void actionAdded(QEvent*);
274  virtual void addTaskAction(QAction*);
275  virtual void rebuildToolbar(const std::string&);
276 
277  virtual void validateMenuItems(int terrainPatchOffset);
278  virtual void slot_backendUpdated(const DtVrfBackendState&, int);
279  virtual bool available(int menu, std::vector<int>& l) const;
280 
283  virtual void availableMenuItems(
284  const makVrv::DtSelectionManager::IdSet& selections,
285  std::vector<int>& available,
286  bool noTaskSetValueMeansAll);
287 
289  virtual bool enableForEnvironmentals() const;
290 
291  virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
292 
295  virtual std::vector<std::string> whoShouldITask(const std::vector<std::string>& name, const DtSimTask& newTask);
296 
297  virtual void destroyActions(const QList<QAction*>& actions);
298 
299 
300  protected:
301  typedef std::map<int, std::set<QAction*> > TaskActions;
309  std::vector<DtVrfTaskSetMenu*> myRadioMenus;
311  std::string myClassName;
314  };
315 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)