VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtItemsListWidget.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2021 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCoreQt/vrvCoreQt.h>
14 #include <vrvCoreQt/DtTreeWidget.h>
15 #include <QtWidgets/QWidget>
18 #include <boost/unordered_map.hpp>
19 
20 class QVBoxLayout;
21 class QTreeWidgetItem;
22 class QLabel;
23 class QLineEdit;
24 class QPushButton;
25 
26 namespace makVrv
27 {
28  class DtDe;
29 
34  class DT_DLL_VRVCOREQT DtItemsListWidget : public QWidget
35  , public DtItemsListInterface
36  {
37  Q_OBJECT
38 
39  public :
40 
42 
45  {
46  ItemElementId = Qt::UserRole,
49  ItemIsSubType
50  };
51 
53  virtual ~DtItemsListWidget();
54 
56  void setupGui();
57 
59  void connectSignals();
60 
66  virtual void addSubTypeTopLevelItem(const DtElementAttributes::ElementSubtypes& subType,
67  const std::string& displayName, int index, const std::string& icon);
68 
76  virtual void addSubTypeTopLevelItem(const DtElementAttributes::ElementSubtypes& subType,
77  const std::string& displayName, int index, double r, double g, double b);
78 
87  virtual void addSubTypeItem(const DtElementAttributes::ElementSubtypes& subType, DtElementID elementId, const std::string& displayName);
88 
91  virtual bool hasSubTypeTopLevelItem(const DtElementAttributes::ElementSubtypes& subType);
92 
98  virtual void addTypeTopLevelItem(const DtElementEntry::ElementType& type,
99  const std::string& displayName, int index, const std::string& icon);
100 
109  virtual void addTypeItem(const DtElementEntry::ElementType& type, DtElementID elementId, const std::string& displayName);
110 
113  virtual bool hasTypeTopLevelItem(const DtElementEntry::ElementType& type);
114 
116  virtual void sortItems();
117 
119  virtual void removeItem(DtElementID id);
120 
123  virtual void renameItem(DtElementID id, const std::string& newName);
124 
127  virtual void updateItemDamageState(DtElementID id, DtEntityStateListener::DamageState damageState);
128 
131  virtual void updateItemSubType(DtElementID id, int subType);
132 
134  virtual void setSelectedItems(const DtSelectionManager::IdSet& selected,
135  const DtSelectionManager::IdSet& deselected);
136 
145  virtual bool comparator(const QTreeWidgetItem& lhs, const QTreeWidgetItem& rhs) const;
146 
147  protected:
148 
150  DtItemsListWidget(DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& f = 0);
151 
156  void setItemAttributes(QTreeWidgetItem* item, DtElementID elementId, const QString& displayName);
157 
161  DtElementID getItemElementId(QTreeWidgetItem* item);
162 
165  bool parseNumber(const QTreeWidgetItem& lhs, int& number, QString& name) const;
166 
167  protected slots:
168 
170  virtual void on_objectsTreeWidget_rightClickOnItem(QTreeWidgetItem* item, QMouseEvent*, int column);
171 
173  virtual void on_objectsTreeWidget_itemDoubleClicked(QTreeWidgetItem* item, int column);
174 
176  virtual void on_objectsTreeWidget_itemSelectionChanged();
177 
179  virtual void on_lookupLineEdit_textChanged(QString str);
180 
182  virtual void on_searchCleanButton_released();
183 
184  private:
185 
187  DtItemsListWidget() = delete;
188 
190  DtItemsListWidget(const DtItemsListWidget& orig) = delete;
191 
193  DtItemsListWidget& operator=(const DtItemsListWidget& orig) = delete;
194 
195  protected:
197  QVBoxLayout * myMainLayout;
202  boost::unordered_map<DtElementEntry::ElementType, QTreeWidgetItem*> myElementTypeItemsMap;
203  boost::unordered_map<DtElementAttributes::ElementSubtypes, QTreeWidgetItem*> myElementSubtypeItemsMap;
204  boost::unordered_map<DtElementID, QTreeWidgetItem*> myElementItemsMap;
205  // Allow in const function
206  mutable std::map<const QString, std::pair<QString, int> > myObjectListCache;
207  };
208 
212  : public DtVirtualBaseClass
213  {
214  public:
215  static DtItemsListWidgetCreator& instance(DtDe& de);
216  static void registerInstance(DtDe& de, DtItemsListWidgetCreator* creator);
217  virtual DtItemsListWidget* create(DtDe& de, QWidget* parent) const;
218  };
219 }
Override QTreeWidget to provide additional functionality (mainly right click support) ...
Definition: DtTreeWidget.h:19
Virtual base class.
Definition: DtVirtualBaseClass.h:19
ItemsListWidgetItemDataRole
Item data stored in the objects tree widget item.
Definition: DtItemsListWidget.h:44
DtDe & myDe
Definition: DtItemsListWidget.h:196
boost::unordered_map< DtElementAttributes::ElementSubtypes, QTreeWidgetItem * > myElementSubtypeItemsMap
Definition: DtItemsListWidget.h:203
Definition: DtItemsListWidget.h:48
Creator for the DtItemsListWidget.
Definition: DtItemsListWidget.h:211
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
Contains DLL export macros.
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
boost::unordered_map< DtElementEntry::ElementType, QTreeWidgetItem * > myElementTypeItemsMap
Definition: DtItemsListWidget.h:202
ElementSubtypes
Definition: DtElementAttributes.h:53
Contains makVrv::DtVirtualBaseClass class.
Definition: DtItemsListWidget.h:47
DtTreeWidget * myObjectsTreeWidget
Definition: DtItemsListWidget.h:201
Interface for display the objects, terrains, observers in the scene in a list.
Definition: DtItemsListInterface.h:26
QLineEdit * myLookupLineEdit
Definition: DtItemsListWidget.h:199
QVBoxLayout * myMainLayout
Definition: DtItemsListWidget.h:197
QLabel * myLookupLabel
Definition: DtItemsListWidget.h:198
ElementType
Definition: DtElementEntry.h:26
boost::unordered_map< DtElementID, QTreeWidgetItem * > myElementItemsMap
Definition: DtItemsListWidget.h:204
std::map< const QString, std::pair< QString, int > > myObjectListCache
Definition: DtItemsListWidget.h:206
Contains the DtItemsListInterface class declaration.
Base class to provide boost signal/slot management.
DamageState
Definition: DtEntityStateListener.h:88
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QPushButton * mySearchCleanButton
Definition: DtItemsListWidget.h:200
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Widget for display the objects, terrains, observers in the scene in a list.
Definition: DtItemsListWidget.h:34

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)