VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
selectionGroupWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
14 #include <vrvCoreQt/DtPage.h>
18 #include <QtWidgets/QWidget>
19 #endif
20 
21 #include <boost/unordered_map.hpp>
22 namespace makVrv
23 {
24  class DtDe;
25 }
26 
27 class QTreeWidgetItem;
28 class QPushButton;
29 class QVBoxLayout;
30 class QHBoxLayout;
31 class QToolButton;
32 
33 namespace makVrf
34 {
35  class DtVrfFilteredListView;
36 
39  {
40  Q_OBJECT
41 
42  public:
43 
45  DtSelectionGroupWidget( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0);
46 
48  virtual ~DtSelectionGroupWidget() override;
49 
51  virtual QIcon icon() override;
52 
55  virtual makVrv::DtQIconConfigurations qIconConfigurations() const override;
56 
58  virtual QString title() override;
59 
61  virtual const std::string& pageClassName() const override;
62 
63  protected:
64 
66  virtual void activate() override;
67 
69  virtual void deactivate() override;
70 
72  void setupUi();
73 
76  virtual void initialize();
77 
79  virtual void showEvent(QShowEvent*) override;
80 
82  virtual void onSelectionGroupAdded(std::string);
83 
85  virtual void onSelectionGroupRemoved(std::string);
86 
88  virtual void onSelectionGroupRenamed(std::string, std::string);
89 
91  virtual void setupFromSelectionGroupManager();
92 
94  virtual void onSelectionChanged();
95 
97  virtual void onSelectionGroupSelected(std::string);
98 
100  virtual void onItemsAddedToSelectionGroup(std::string, DtSelectionGroupManager::GroupItems);
101 
103  virtual void onItemsRemovedFromSelectionGroup(std::string, DtSelectionGroupManager::GroupItems);
104 
106  virtual void onSelectionGroupsCleared();
107 
109  virtual void onSelectionGroupCleared(std::string);
110 
112  virtual void slot_rightClickOnItem(QPoint global);
113 
115  virtual std::set<std::string> selectionGroupsSelected() const;
116 
117  protected slots:
118  virtual void onAddSelectionGroup();
119  virtual void onRemoveSelectionGroup();
120  virtual void onItemSelectionChanged();
121  virtual void onGroupRenamed();
122  virtual void onRemoveFromSelectionGroup();
123 
124  protected:
126  virtual QSize sizeHint() const override;
127 
129  virtual void validateButtons();
130 
132  virtual QString getGroupName(const QString& initialName) const;
133 
134  virtual void onItemRemovedFromSelectionGroups(DtUUID);
135 
136  virtual void onFilterListItemAboutToBeRemoved(QTreeWidgetItem*);
137 
138  virtual void onStateAdded(DtSimObjectReference);
139 
140  public:
141  QVBoxLayout* myMainLayout;
142  QHBoxLayout* myButtonLayout;
149 
150  protected:
151  std::string myClassName;
152 
154  {
156  std::map<DtUUID, QTreeWidgetItem*> items;
157  };
158 
159  typedef std::map<std::string, SelectionGroup> SelectionGroups;
161 
162  typedef std::map<QTreeWidgetItem*, std::string> GroupListItems;
164 
165  typedef boost::unordered_map<DtUUID, std::set<std::string> > WaitingForDiscovery;
167  };
168 
172  {
173  public:
174 
177 
179  virtual ~DtSelectionGroupWidgetCreator() override;
180 
184  virtual std::string pageClassName() const override;
185 
187  virtual makVrv::DtPage* create(QWidget* parent = 0, Qt::WindowFlags f = 0) override;
188  };
189 }
190 
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Definition: selectionGroupWidget.h:153
QTreeWidgetItem * parent
Definition: selectionGroupWidget.h:155
std::map< std::string, SelectionGroup > SelectionGroups
Definition: selectionGroupWidget.h:159
std::map< QTreeWidgetItem *, std::string > GroupListItems
Definition: selectionGroupWidget.h:162
Contains makVrv::DtPage class declaration.
std::set< DtUUID > GroupItems
Definition: selectionGroupManager.h:53
QToolButton * myRemoveSelectionGroup
Definition: selectionGroupWidget.h:144
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
QVBoxLayout * myMainLayout
Definition: selectionGroupWidget.h:141
The page creator. This class should be extended by all page classes.
Definition: DtPage.h:152
QToolButton * myAddSelectionGroup
Definition: selectionGroupWidget.h:143
DtVrfFilteredListView * mySelectionGroupsList
Definition: selectionGroupWidget.h:146
GroupListItems myGroupListItems
Definition: selectionGroupWidget.h:163
QToolButton * myRemoveFromSelectionGroup
Definition: selectionGroupWidget.h:145
std::string myClassName
Definition: selectionGroupWidget.h:151
boost::unordered_map< DtUUID, std::set< std::string > > WaitingForDiscovery
Definition: selectionGroupWidget.h:165
bool myInitialized
Definition: selectionGroupWidget.h:148
QHBoxLayout * myButtonLayout
Definition: selectionGroupWidget.h:142
makVrv::DtSignalConnectionManager myConnectionManager
Definition: selectionGroupWidget.h:147
SelectionGroups mySelectionGroups
Definition: selectionGroupWidget.h:160
A widget class for managing a DtVrfTreeWidget of objects which supports user-defined filters...
Definition: vrfFilteredListView.h:64
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:51
std::map< DtUUID, QTreeWidgetItem * > items
Definition: selectionGroupWidget.h:156
The creator class needed to be used to create a DtSelectionGroupWidget.
Definition: selectionGroupWidget.h:171
Base class to provide boost signal/slot management.
WaitingForDiscovery myWaitingForDiscovery
Definition: selectionGroupWidget.h:166
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
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:131
A widget class for allowing manipulation of selection groups.
Definition: selectionGroupWidget.h:38

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)