VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simulationObjectEditorSystemList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
17 #endif
18 
19 #include <QtWidgets/QItemDelegate>
20 
21 #include <boost/function.hpp>
22 #include <boost/signals2.hpp>
23 
27 class QGridLayout;
28 class QLabel;
29 class QLineEdit;
30 class QPushButton;
31 class QToolButton;
32 class QSplitter;
33 class DtUiElementEvent;
34 
35 const int DtSystemDefinitionRole = Qt::UserRole;
36 const int DtSystemFilenameRole = Qt::UserRole + 1;
37 
38 typedef boost::function<bool (const DtComponentSystemDefinition*)> DtSystemFilterFunction;
39 
40 namespace makVrf
41 {
42  class DtSearchWidget;
43 }
44 
46 {
47 public:
50  virtual bool isValid(const DtComponentSystemDefinition*);
51 
52  void setTags(const std::vector<std::string>&);
53 
54  virtual DtSystemPaletteFilter* clone() const { return new DtSystemPaletteFilter(*this); };
55 
56  virtual void addFilterFunction(DtSystemFilterFunction f) { myFilterFunctions.push_back(f); };
57 
58 protected:
59  std::vector<DtSystemFilterFunction> myFilterFunctions;
60  std::set<std::string> myTags;
62 };
63 
65 {
66 public:
68  virtual QVariant data(int column, int role) const;
69 
70  void setPaletteParent(DtSimulationObjectEditorSystemList* p) { myPaletteParent = p; };
71  bool isInMasterSMS() const;
72 
73  virtual DtComponentSystemDefinition* proxyModel() const;
74  virtual DtFilename systemFilename() const;
75 
76  virtual bool operator<(const QTreeWidgetItem & other ) const;
77 
78  virtual void setShowWarning(bool);
79  bool showWarning() const
80  {
81  return myShowWarning;
82  }
83 
84  virtual void setWarning(const QString&);
85  const QString& warning() const
86  {
87  return myWarning;
88  }
89 
90 protected:
93  QString myWarning;
95 };
96 
98 {
99  Q_OBJECT
100 
101 public:
102 
105 
108 
110  virtual void init();
111 
113  {
114  return mySystems;
115  }
116 
118  virtual void setShowIncluded(bool);
119  bool showIncluded() const
120  {
121  return myShowIncluded;
122  }
123 
125  virtual void setShowAllTags(bool);
126  bool showAllTags() const
127  {
128  return myShowAllTags;
129  }
130 
131  virtual bool selectSystem(const DtFilename&, bool forceReselect = true);
132 
133  virtual void addFilterFunction(DtSystemFilterFunction f);
134 
135  virtual void setRightClickEnabled(bool);
136  bool rightClickEnabled() const
137  {
138  return myRightClickEnabled;
139  }
140 
141  virtual QString textFilter() const;
142  virtual void setTextFilter(const QString&);
143  virtual void selectCategory(const QString&);
144  virtual void copyListContentsToClipboard();
145 
146  virtual bool selectedIsInMasterSMS() const;
147 
148  virtual void clear();
149 
150  bool executingFilter() const;
151  virtual QSize sizeHint() const;
152  virtual QSize minimumSizeHint() const;
153  virtual QStringList selectedNames() const;
154  virtual void selectNames(const QStringList&);
155  virtual int selectedItemsCount() const;
156 
157  virtual QString selectedPath() const;
158  virtual void selectPath(const QString& path);
159 
160  virtual bool canRevertExisting() const;
161  virtual void revertExisting();
162 
163  virtual DtComponentSystemDefinition* systemFor(QTreeWidgetItem*) const;
164  virtual void fillInList();
165  virtual std::vector<std::string> selectedCategories() const;
166  virtual QTreeWidgetItem* selectedItem() const;
167 
168  bool hasSelection() const;
169 
171  virtual bool canDeleteExisting(bool any = false) const;
172 
173  virtual std::vector<DtComponentSystemDefinition*> selectedSystems() const;
174  virtual std::vector<DtComponentSystemDefinition*> getRevertableSystems() const;
175 
176  virtual std::vector<QTreeWidgetItem*> itemsFor(const std::vector<DtComponentSystemDefinition*>&) const;
177  virtual QTreeWidgetItem* itemFor(const DtComponentSystemDefinition*) const;
178 
179  boost::signals2::signal<void ()> signal_itemSelectionChanged;
180 
181 protected:
182  virtual makVrf::DtTreeWidget* createSystemsList(QWidget* p);
183 
184  virtual DtSystemPaletteFilter* createFilter();
185  virtual DtSystemPaletteItem* createPaletteItem();
186  virtual DtSystemPaletteItem* createPaletteItem(const DtFilename&, DtComponentSystemDefinition*);
187  virtual bool checkSMSValid(QTreeWidgetItem*) const;
188  virtual void slot_systemEntryAdded(DtComponentSystemDefinition*);
189  virtual void slot_systemAboutToBeRemoved(DtComponentSystemDefinition*);
190  virtual void slot_processUIEvent(const DtUiElementEvent& e);
191  virtual void runHealthCheck();
192  virtual void updateHealthResults();
193  virtual void addAllItems();
194  virtual QTreeWidgetItem* topLevelItemFor(const std::string&);
195  virtual void resetParentVisibility();
196  virtual void addNewSystemItem(const DtFilename& filename, DtComponentSystemDefinition* systemDef);
197 
198 public slots:
199  virtual void executeFilter();
200  virtual void executeTextFilter();
201  virtual void selectionChanged();
202  virtual void deleteExisting();
203 
204 protected slots:
205  virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*);
206 
207 signals:
208  void healthCheckResults(const QString&);
209 
210 public:
214 
216 
217  QSplitter* mySplitter;
219 
220 protected:
225 
226  typedef std::map<const DtComponentSystemDefinition*, QTreeWidgetItem*> PaletteItems;
229 
232  std::map<std::string, QTreeWidgetItem*> myTopLevelItems;
233  std::map<DtString, bool> myExpandedStates;
234 };
235 
238 {
239 public:
242 
245 
248 
250  static void registerInstance(makVrv::DtDe&, DtSimulationObjectEditorSystemListCreator*);
251 
253  virtual DtSimulationObjectEditorSystemList* create(QWidget* parent);
254 
255 protected:
257 };
258 
259 
261 {
262  return myExecutingFilter;
263 }
264 
266 {
267  return (mySystems && (mySystems->selectedItems().count() != 0));
268 }
269 
271 {
272 public:
275 
276 protected:
277  virtual void paint(QPainter *painter,
278  const QStyleOptionViewItem &option,
279  const QModelIndex &index) const;
280 };
bool showAllTags() const
Definition: simulationObjectEditorSystemList.h:126
std::set< std::string > myTags
Definition: simulationObjectEditorSystemList.h:60
DtSimulationObjectEditorSystemListItemDelegate(QWidget *parent)
Definition: simulationObjectEditorSystemList.h:273
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:256
Definition: treeWidget.h:35
bool rightClickEnabled() const
Definition: simulationObjectEditorSystemList.h:136
bool myRightClickEnabled
Definition: simulationObjectEditorSystemList.h:224
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< const DtComponentSystemDefinition *, QTreeWidgetItem * > PaletteItems
Definition: simulationObjectEditorSystemList.h:226
Definition: simulationObjectEditorSystemList.h:45
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:230
const QString & warning() const
Definition: simulationObjectEditorSystemList.h:85
QSplitter * mySplitter
Definition: simulationObjectEditorSystemList.h:217
DtSystemPaletteFilter * myFilter
Definition: simulationObjectEditorSystemList.h:213
bool showWarning() const
Definition: simulationObjectEditorSystemList.h:79
bool hasSelection() const
Definition: simulationObjectEditorSystemList.h:265
virtual DtSystemPaletteFilter * clone() const
Definition: simulationObjectEditorSystemList.h:54
virtual ~DtSimulationObjectEditorSystemListItemDelegate()
Definition: simulationObjectEditorSystemList.h:274
bool myShowAllTags
Definition: simulationObjectEditorSystemList.h:223
QString myWarning
Definition: simulationObjectEditorSystemList.h:93
bool myExecutingFilter
Definition: simulationObjectEditorSystemList.h:221
makVrf::DtTreeWidget * mySystems
Definition: simulationObjectEditorSystemList.h:211
bool executingFilter() const
Definition: simulationObjectEditorSystemList.h:260
DtSimulationObjectEditorSystemList * myPaletteParent
Definition: simulationObjectEditorSystemList.h:91
void setPaletteParent(DtSimulationObjectEditorSystemList *p)
Definition: simulationObjectEditorSystemList.h:70
std::map< std::string, QTreeWidgetItem * > myTopLevelItems
Definition: simulationObjectEditorSystemList.h:232
bool myShowIncluded
Definition: simulationObjectEditorSystemList.h:222
DtFilename mySelectSystemIfAvailable
Definition: simulationObjectEditorSystemList.h:228
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:25
const int DtSystemFilenameRole
Definition: simulationObjectEditorSystemList.h:36
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:61
DtSimulationObjectEditorTagSelectorWidget * myTags
Definition: simulationObjectEditorSystemList.h:212
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:92
makVrf::DtTreeWidget * systemsList()
Definition: simulationObjectEditorSystemList.h:112
QWidget * myControlsWidget
Definition: simulationObjectEditorSystemList.h:218
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myShowWarning
Definition: simulationObjectEditorSystemList.h:94
boost::function< bool(const DtComponentSystemDefinition *)> DtSystemFilterFunction
Definition: simulationObjectEditorSystemList.h:38
makVrv::DtSignalConnectionManager myConnections
Definition: simulationObjectEditorSystemList.h:231
Definition: simulationObjectEditorSystemList.h:64
Contains makVrf::DtTagSelectorWidget class.
Definition: simulationObjectEditorTagSelectorWidget.h:14
Creator for the list.
Definition: simulationObjectEditorSystemList.h:237
std::map< DtString, bool > myExpandedStates
Definition: simulationObjectEditorSystemList.h:233
makVrf::DtSearchWidget * mySearchWidget
Definition: simulationObjectEditorSystemList.h:215
Definition: simulationObjectEditorSystemList.h:270
Base class to provide boost signal/slot management.
Definition: searchWidget.h:22
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
boost::signals2::signal< void()> signal_itemSelectionChanged
Definition: simulationObjectEditorSystemList.h:179
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
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:72
Definition: simulationObjectEditorSystemList.h:97
PaletteItems myPaletteItems
Definition: simulationObjectEditorSystemList.h:227
bool showIncluded() const
Definition: simulationObjectEditorSystemList.h:119
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
const int DtSystemDefinitionRole
Definition: simulationObjectEditorSystemList.h:35

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)