VR-Forces 5.0.2 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 
41 {
42 public:
45  virtual bool isValid(const DtComponentSystemDefinition*);
46 
47  void setTags(const std::vector<std::string>&);
48 
49  virtual DtSystemPaletteFilter* clone() const { return new DtSystemPaletteFilter(*this); };
50 
51  virtual void addFilterFunction(DtSystemFilterFunction f) { myFilterFunctions.push_back(f); };
52 
53 protected:
54  std::vector<DtSystemFilterFunction> myFilterFunctions;
55  std::set<std::string> myTags;
57 };
58 
60 {
61 public:
63  virtual QVariant data(int column, int role) const;
64 
65  void setPaletteParent(DtSimulationObjectEditorSystemList* p) { myPaletteParent = p; };
66  bool isInMasterSMS() const;
67 
68  virtual DtComponentSystemDefinition* proxyModel() const;
69  virtual DtFilename systemFilename() const;
70 
71  virtual bool operator<(const QTreeWidgetItem & other ) const;
72 
73  virtual void setShowWarning(bool);
74  bool showWarning() const
75  {
76  return myShowWarning;
77  }
78 
79  virtual void setWarning(const QString&);
80  const QString& warning() const
81  {
82  return myWarning;
83  }
84 
85 protected:
88  QString myWarning;
90 };
91 
93 {
94  Q_OBJECT
95 
96 public:
97 
100 
103 
105  virtual void init();
106 
108  {
109  return mySystems;
110  }
111 
113  virtual void setShowIncluded(bool);
114  bool showIncluded() const
115  {
116  return myShowIncluded;
117  }
118 
120  virtual void setShowAllTags(bool);
121  bool showAllTags() const
122  {
123  return myShowAllTags;
124  }
125 
126  virtual bool selectSystem(const DtFilename&, bool forceReselect = true);
127 
128  virtual void addFilterFunction(DtSystemFilterFunction f);
129 
130  virtual void setRightClickEnabled(bool);
131  bool rightClickEnabled() const
132  {
133  return myRightClickEnabled;
134  }
135 
136  virtual QString textFilter() const;
137  virtual void setTextFilter(const QString&);
138  virtual void selectCategory(const QString&);
139  virtual void copyListContentsToClipboard();
140 
141  virtual bool selectedIsInMasterSMS() const;
142 
143  virtual void clear();
144 
145  bool executingFilter() const;
146  virtual QSize sizeHint() const;
147  virtual QSize minimumSizeHint() const;
148  virtual QStringList selectedNames() const;
149  virtual void selectNames(const QStringList&);
150  virtual int selectedItemsCount() const;
151 
152  virtual QString selectedPath() const;
153  virtual void selectPath(const QString& path);
154 
155  virtual bool canRevertExisting() const;
156  virtual void revertExisting();
157 
158  virtual DtComponentSystemDefinition* systemFor(QTreeWidgetItem*) const;
159  virtual void fillInList();
160  virtual std::vector<std::string> selectedCategories() const;
161  virtual QTreeWidgetItem* selectedItem() const;
162 
163  bool hasSelection() const;
164 
166  virtual bool canDeleteExisting(bool any = false) const;
167 
168  virtual std::vector<DtComponentSystemDefinition*> selectedSystems() const;
169  virtual std::vector<DtComponentSystemDefinition*> getRevertableSystems() const;
170 
171  virtual std::vector<QTreeWidgetItem*> itemsFor(const std::vector<DtComponentSystemDefinition*>&) const;
172  virtual QTreeWidgetItem* itemFor(const DtComponentSystemDefinition*) const;
173 
174  boost::signals2::signal<void ()> signal_itemSelectionChanged;
175 
176 protected:
177  virtual makVrf::DtTreeWidget* createSystemsList(QWidget* p);
178 
179  virtual DtSystemPaletteFilter* createFilter();
180  virtual DtSystemPaletteItem* createPaletteItem();
181  virtual DtSystemPaletteItem* createPaletteItem(const DtFilename&, DtComponentSystemDefinition*);
182  virtual bool checkSMSValid(QTreeWidgetItem*) const;
183  virtual void slot_systemEntryAdded(DtComponentSystemDefinition*);
184  virtual void slot_systemAboutToBeRemoved(DtComponentSystemDefinition*);
185  virtual void slot_processUIEvent(const DtUiElementEvent& e);
186  virtual void runHealthCheck();
187  virtual void updateHealthResults();
188 
189 public slots:
190  virtual void executeFilter();
191  virtual void executeTextFilter();
192  virtual void selectionChanged();
193  virtual void deleteExisting();
194 
195 protected slots:
196  virtual void resetTextFilter();
197  virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*);
198 
199 signals:
200  void healthCheckResults(const QString&);
201 
202 public:
206  QGridLayout* myControlsLayout;
207 
211 
212  QSplitter* mySplitter;
214 
215 protected:
220 
221  typedef std::map<const DtComponentSystemDefinition*, QTreeWidgetItem*> PaletteItems;
224 
227 };
228 
231 {
232 public:
235 
238 
241 
243  static void registerInstance(makVrv::DtDe&, DtSimulationObjectEditorSystemListCreator*);
244 
246  virtual DtSimulationObjectEditorSystemList* create(QWidget* parent);
247 
248 protected:
250 };
251 
252 
254 {
255  return myExecutingFilter;
256 }
257 
259 {
260  return (mySystems && (mySystems->selectedItems().count() != 0));
261 }
262 
264 {
265 public:
268 
269 protected:
270  virtual void paint(QPainter *painter,
271  const QStyleOptionViewItem &option,
272  const QModelIndex &index) const;
273 };
bool showAllTags() const
Definition: simulationObjectEditorSystemList.h:121
std::set< std::string > myTags
Definition: simulationObjectEditorSystemList.h:55
DtSimulationObjectEditorSystemListItemDelegate(QWidget *parent)
Definition: simulationObjectEditorSystemList.h:266
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:249
Definition: treeWidget.h:35
bool rightClickEnabled() const
Definition: simulationObjectEditorSystemList.h:131
bool myRightClickEnabled
Definition: simulationObjectEditorSystemList.h:219
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:221
Definition: simulationObjectEditorSystemList.h:40
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:225
const QString & warning() const
Definition: simulationObjectEditorSystemList.h:80
QSplitter * mySplitter
Definition: simulationObjectEditorSystemList.h:212
DtSystemPaletteFilter * myFilter
Definition: simulationObjectEditorSystemList.h:205
bool showWarning() const
Definition: simulationObjectEditorSystemList.h:74
QGridLayout * myControlsLayout
Definition: simulationObjectEditorSystemList.h:206
bool hasSelection() const
Definition: simulationObjectEditorSystemList.h:258
QToolButton * myResetButton
Definition: simulationObjectEditorSystemList.h:210
virtual DtSystemPaletteFilter * clone() const
Definition: simulationObjectEditorSystemList.h:49
virtual ~DtSimulationObjectEditorSystemListItemDelegate()
Definition: simulationObjectEditorSystemList.h:267
QLineEdit * mySearch
Definition: simulationObjectEditorSystemList.h:209
bool myShowAllTags
Definition: simulationObjectEditorSystemList.h:218
QString myWarning
Definition: simulationObjectEditorSystemList.h:88
bool myExecutingFilter
Definition: simulationObjectEditorSystemList.h:216
makVrf::DtTreeWidget * mySystems
Definition: simulationObjectEditorSystemList.h:203
bool executingFilter() const
Definition: simulationObjectEditorSystemList.h:253
DtSimulationObjectEditorSystemList * myPaletteParent
Definition: simulationObjectEditorSystemList.h:86
void setPaletteParent(DtSimulationObjectEditorSystemList *p)
Definition: simulationObjectEditorSystemList.h:65
bool myShowIncluded
Definition: simulationObjectEditorSystemList.h:217
DtFilename mySelectSystemIfAvailable
Definition: simulationObjectEditorSystemList.h:223
DtComponentSystemDefinition.
Definition: componentSystemDefinition.h:25
const int DtSystemFilenameRole
Definition: simulationObjectEditorSystemList.h:36
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:56
DtSimulationObjectEditorTagSelectorWidget * myTags
Definition: simulationObjectEditorSystemList.h:204
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtDe & myDe
Definition: simulationObjectEditorSystemList.h:87
makVrf::DtTreeWidget * systemsList()
Definition: simulationObjectEditorSystemList.h:107
QWidget * myControlsWidget
Definition: simulationObjectEditorSystemList.h:213
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QLabel * mySearchLabel
Definition: simulationObjectEditorSystemList.h:208
bool myShowWarning
Definition: simulationObjectEditorSystemList.h:89
boost::function< bool(const DtComponentSystemDefinition *)> DtSystemFilterFunction
Definition: simulationObjectEditorSystemList.h:38
makVrv::DtSignalConnectionManager myConnections
Definition: simulationObjectEditorSystemList.h:226
Definition: simulationObjectEditorSystemList.h:59
Contains makVrf::DtTagSelectorWidget class.
Definition: simulationObjectEditorTagSelectorWidget.h:14
Creator for the list.
Definition: simulationObjectEditorSystemList.h:230
Definition: simulationObjectEditorSystemList.h:263
Base class to provide boost signal/slot management.
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
boost::signals2::signal< void()> signal_itemSelectionChanged
Definition: simulationObjectEditorSystemList.h:174
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:70
Definition: simulationObjectEditorSystemList.h:92
PaletteItems myPaletteItems
Definition: simulationObjectEditorSystemList.h:222
bool showIncluded() const
Definition: simulationObjectEditorSystemList.h:114
#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 Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)