VR-Forces 4.2 Class Documentation
DtVrfTaskSetMenu.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
11 
12 #include <vrvCoreQt/DtMenuItem.h>
13 #include <vrvCore/DtSelectionManager.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 
37  class DT_DLL_VRFGUICOREQT DtVrfTaskSetMenuItem : public makVrv::DtMenuItem
38  {
39  Q_OBJECT
40 
41  public:
45  DtVrfTaskSetMenuItem(const std::string&, makVrv::DtDe&);
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:
67  makVrv::DtDe& myDe;
68  };
69 
75  {
76  Q_OBJECT
77 
78  public:
81  DtVrfTaskSetAction(QWidget* parent, makVrv::DtDe&);
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:
139  makVrv::DtDe& myDe;
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 
166  virtual void setPartOfPlanDialog(int b);
167  virtual void setEntitySet(const makVrv::DtSelectionManager::IdSet& set);
168  virtual void setMenuItemValidation(bool b);
169 
172  virtual void setHideDisabledItem(bool yesNo);
173 
175  virtual void setSignalDialogCreation(bool b);
176 
177  bool signalDialogCreation() const
178  {
179  return mySignalDialogCreation;
180  }
181 
184  virtual void setSignalTaskSetRequests(bool b);
185 
186  bool signalTaskSetRequests() const
187  {
188  return mySignalTaskSetRequests;
189  }
190 
191  int partOfPlanDialog() const
192  {
193  return myPartOfPlanDialog;
194  }
195 
196  const makVrv::DtSelectionManager::IdSet& entitySet() const
197  {
198  return myEntitySet;
199  }
200 
201  void setParentMenu(DtVrfTaskSetMenu* p)
202  {
203  myParentMenu = p;
204  }
205 
206  DtVrfTaskSetMenu* parentMenu()
207  {
208  return myParentMenu;
209  }
210 
212  virtual void clearMenu();
213 
214  public:
215  boost::signal<void (std::vector<std::string> names, const DtSetDataRequest&)> signal_sendSetRequest;
216  boost::signal<void (std::vector<std::string> names, const DtSimTask&)> signal_sendTaskRequest;
217  boost::signal<void (QAction*)> signal_validateMenuItem;
218 
219  virtual void slot_sendSetRequest(std::vector<std::string> names, const DtSetDataRequest& s);
220  virtual void slot_sendTaskRequest(std::vector<std::string> names, const DtSimTask& s);
221 
223  virtual void slot_createTaskSetDialog(int menuItemType, QWidget*, DtVrfTaskSetAction*,
224  const std::vector<makVrv::DtSimEntry*>&, int);
225  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
226  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createTaskSetDialog;
227 
228 
230  virtual void signalCommandDialogCreation(int menuItemType, QWidget* parent, DtVrfTaskSetAction* forAction,
231  const std::vector<makVrv::DtSimEntry*>& data, int partOfPlan);
232  boost::signal<void (int menuItemType, QWidget*, DtVrfTaskSetAction*,
233  const std::vector<makVrv::DtSimEntry*>&, int, DtVrfTaskSetMenu*)> signal_createCommandDialog;
234 
237  virtual void mergeChangesFrom(const std::string& menu, const DtSubMenuConfiguration&, DtSubMenuConfiguration&,
238  bool maintainOriginalOrder = false);
239 
240  public slots:
241  virtual void validate();
242 
243  protected:
246  virtual void revalidate(makVrv::DtUniqueID);
247 
248  virtual bool eventFilter(QObject *, QEvent *);
249  virtual void actionAdded(QEvent*);
250  virtual void addTaskAction(QAction*);
251  virtual void rebuildToolbar(const std::string&);
252 
253  virtual void validateMenuItems(int terrainPatchOffset);
254  virtual void slot_backendUpdated(const DtVrfBackendState&, int);
255  virtual bool available(int menu, std::vector<int>& l) const;
256  virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
257 
260  virtual std::vector<std::string> whoShouldITask(const std::vector<std::string>& name, const DtSimTask& newTask);
261 
262  virtual void destroyActions(const QList<QAction*>& actions);
263 
267  virtual bool updateSubMenuVisibilityState(QMenu*);
268 
269  protected:
270  typedef std::map<int, std::vector<QAction*> > TaskActions;
272  makVrv::DtSelectionManager::IdSet myEntitySet;
278  std::vector<DtVrfTaskSetMenu*> myRadioMenus;
280  std::string myClassName;
282  makVrv::DtSelectionManager::IdSet myValidatedFor;
283  };
284 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)