VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfEntityMenu.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
19 
20 #include <vrvCoreQt/DtMenuItem.h>
21 #endif
22 #include <boost/signals2.hpp>
23 
24 class QEvent;
25 
26 namespace makVrf
27 {
28  class DtVrfBackendState;
29  class DtVrfEntityMenu;
30 
32  {
33  public:
36 
38  virtual ~DtVrfExpandAggregateMenuItem() override;
39  virtual QAction* createAction( makVrv::DtDe& de, QWidget* parent ) override;
40 
41  virtual void on_triggered() override;
42 
43  protected:
45  };
46 
48  {
49  public:
52 
54  virtual ~DtVrfExpandAllAggregateMenuItem() override;
55  virtual QAction* createAction( makVrv::DtDe& de, QWidget* parent ) override;
56 
57  virtual void on_triggered() override;
58 
59  protected:
61  };
62 
64  {
65  public:
68 
70  virtual ~DtVrfCollapseAggregateMenuItem() override;
71 
72  virtual void on_triggered() override;
73  virtual void on_aboutToShow() override;
74  virtual QAction* createAction( makVrv::DtDe& de, QWidget* parent ) override;
75 
76  protected:
78  };
79 
81  {
82  public:
85 
87  virtual ~DtVrfCollapseAllAggregateMenuItem() override;
88 
89  virtual void on_triggered() override;
90  virtual QAction* createAction( makVrv::DtDe& de, QWidget* parent ) override;
91 
92  protected:
94  };
95 
97  {
98  Q_OBJECT
99 
100  public:
102  {
103  NoOtherOptions = 0,
104  AllObjectsAreVrfSimulated = 0x00000001,
105  AllEditable = 0x00000002,
106  InSameSession = 0x00000004,
107  AllDeletable = 0x00000008,
108  MoreThanOne = 0x00000010
109  };
110 
111  DtVrfEntityAction(const std::string&, makVrv::DtDe&);
112  virtual ~DtVrfEntityAction() override;
113 
114  virtual QAction* registerEntityAction(QAction*);
115  virtual void validate(QAction*) = 0;
116 
118  virtual bool selectionMatchesTypes(const makVrv::DtSelectionManager::IdSet&,
119  const std::vector<makVrv::DtElementEntry::ObjectType>&, MatchFlags flags = AllObjectsAreVrfSimulated) const;
120 
122  virtual bool needsToBeJoinedToSession() const;
123 
124  virtual bool joinedToSession() const;
125  bool validateAlways() const { return myValidateAlways; };
126 
127  protected:
128  virtual void executeEntityAction(const makVrv::DtSelectionManager::IdSet&,
129  const boost::function<void (const DtUUID&, DtSimulationAddress addr)>& function,
130  DtSimulationAddress addr = DtSimSendToAll, bool clearAndRequestNewTasks = false);
131 
132  virtual void executeAggregateAction(const makVrv::DtSelectionManager::IdSet&, bool ignoreSubordinates,
133  const boost::function<void (const DtUUID&, DtSimulationAddress addr)>& function,
134  DtSimulationAddress addr = DtSimSendToAll, bool clearAndRequestNewTasks = false);
135 
136  virtual void slot_onValidate(QAction*);
137  virtual void slot_backendUpdated(const DtVrfBackendState&, int, QAction*);
138 
139  virtual void on_aboutToShow() override;
140 
141  boost::signals2::signal<void ()> signal_validateMenuItem;
142 
143  protected slots:
144  virtual void onActionDestroyed();
145 
146  protected:
149  };
150 
152  {
153  Q_OBJECT
154 
155  public:
157  DtVrfEntityMenu(const QString& title, QWidget* parent, makVrv::DtDe&);
158 
160  virtual ~DtVrfEntityMenu() override;
161 
162  protected:
163  virtual bool eventFilter(QObject*, QEvent*) override;
164  virtual void actionAdded(QEvent*);
165  virtual bool shouldAddAsPartOfMenu(const QList<QAction*>& acts, QAction* toMatch) const;
166 
167  virtual void validateMenuItems(int terrainPatchOffset) override;
168 
169  protected:
170  std::vector<std::pair<DtVrfEntityAction*, QAction*> > myEntityActions;
171  };
172 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: vrfBackendState.h:65
Builder for menu items.
Definition: DtMenuItem.h:23
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
Definition: vrfEntityMenu.h:96
std::vector< std::pair< DtVrfEntityAction *, QAction * > > myEntityActions
Definition: vrfEntityMenu.h:170
boost::signals2::signal< void()> signal_validateMenuItem
Definition: vrfEntityMenu.h:141
Declaration of the Aggregate Menu Items classes.
makVrv::DtDe & myDe
Definition: vrfEntityMenu.h:147
Definition: vrfEntityMenu.h:31
A menu item to collapse all hierarchy up to the top level parent.
Definition: DtAggregateMenuItems.h:103
Definition: vrfEntityMenu.h:151
MatchFlags
Definition: vrfEntityMenu.h:101
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfEntityMenu.h:93
A menu that validates itself on selection.
Definition: selectionEnabledMenu.h:57
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myValidateAlways
Definition: vrfEntityMenu.h:148
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfEntityMenu.h:77
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfEntityMenu.h:44
Definition: vrfEntityMenu.h:47
A menu item to expand the currently selected aggregate all the way down to leaf nodes.
Definition: DtAggregateMenuItems.h:48
Base class to provide boost signal/slot management.
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfEntityMenu.h:60
A menu item to collapse the selected aggregate to its immediate superior.
Definition: DtAggregateMenuItems.h:76
Definition: translator.h:58
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Definition: vrfEntityMenu.h:63
A menu item to expand the currently selected aggregate to display immediate subordinates.
Definition: DtAggregateMenuItems.h:20
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Definition: vrfEntityMenu.h:80
bool validateAlways() const
Definition: vrfEntityMenu.h:125

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)