VR-Forces 4.2 Class Documentation
entityEditorList.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 
13 #include <QtCore/QHash>
14 #include <QtGui/QImage>
15 #include <QtCore/QMap>
16 #include <QtCore/QString>
17 #include <QtCore/QVariant>
18 #include <QtGui/QMessageBox>
19 #include <vrfExtProtocol/objType.h>
20 #include "vrfutil/rwForces.h"
21 #include <vrvUtil/DtVirtualBaseClass.h>
22 
23 #include <set>
24 
25 namespace makVrf
26 {
27  class DtEntityMapperKey;
28 }
29 
31 class DtFilename;
33 class DtList;
34 class QComboBox;
38 class DtModelSetEntry;
39 class QLabel;
40 class DtUiElementEvent;
41 class QPushButton;
42 class QLineEdit;
43 
44 const int DtModelRole = Qt::UserRole;
45 const int DtGlobalForcesRole = Qt::UserRole + 1;
46 
47 class DtEntityEditorList;
48 
50 {
51 public:
54  virtual bool isValid(const DtModelSetEntry*);
55 
56  void setCategory(const QString&);
57  void setUsedByCountry(const QString&);
58  void setFilterOnForces(const DtRwForces&);
59 
60  virtual DtEntityPaletteFilter* clone() const { return new DtEntityPaletteFilter(*this); };
61 
62 protected:
63  QString myCategory;
64  QString myUsedByCountry;
66 };
67 
69 {
70 public:
71  DtEntityPaletteItem(makVrv::DtDe& de);
72  virtual QVariant data(int column, int role) const;
73 
74  virtual DtModelSetEntry* proxyModel() const;
75  virtual QList<QVariant> proxyForces() const;
76 
77  void setPaletteParent(DtEntityEditorList* p) { myPaletteParent = p; };
78  QString forcePixmapKey(DtModelSetEntry*, const QList<QVariant>&) const;
79 
80 protected:
81  virtual QImage getPixmap(const DtObjectType& o, int force) const;
82 
83 protected:
85  mutable QString myForcePixmapKey;
86  mutable QImage myForcePixmap;
87  makVrv::DtDe& myDe;
88 };
89 
91 {
92  Q_OBJECT
93 
94 public:
95 
97  DtEntityEditorList(makVrv::DtDe&, QWidget*);
98 
100  virtual ~DtEntityEditorList();
101 
103  virtual void init();
104 
105  bool hasSelection() const;
106  virtual std::set<makVrf::DtEntityMapperKey> getSelectedInformation() const;
107  virtual std::set<makVrf::DtEntityMapperKey> getRevertableKeys() const;
108  virtual void getSelectedInformation(DtObjectType& key) const;
109  virtual void getInformation(QTreeWidgetItem*, makVrf::DtEntityMapperKey& key) const;
110  virtual void getInformation(QTreeWidgetItem*, DtObjectType& key) const;
111 
112  virtual bool canRevertExisting() const;
113  virtual bool canDeleteExisting() const;
114 
115  virtual void getCategorySelections(DtRwForces&, DtRwNLengthStringVector&);
116 
117  virtual DtObjectType selectedObjectType() const;
118  virtual QTreeWidgetItem* selectedItem() const;
119  virtual DtModelSetEntry* selectedModel() const;
120  virtual void setSelected(const QString&);
121  virtual void setSelected(DtModelSetEntry*);
122  virtual void selectPath(const QString& path);
123  virtual DtModelSetEntry* modelFor(QTreeWidgetItem*) const;
124 
125  virtual void selectUncategorized();
126  virtual void selectCategory(const QString&);
127  virtual void selectUsedByCountry(const QString&);
128 
129  QTreeWidget* entityList();
130 
131  static DtEntityEditorList* create(QWidget* parent = NULL);
132  void setRightClickEnabled(bool b);
133  bool rightClickEnabled() const;
134 
135  virtual QStringList selectedNames() const;
136  virtual void selectNames(const QStringList&);
137 
138  QTreeWidgetItem* currentlyDisplaying() const;
139 
142  virtual void setFilterOnForces(const DtRwForces& forces);
143  const DtRwForces& filterOnForces() const;
144 
145  virtual bool selectModel(DtModelSetEntry* m);
146  virtual QString categoryFor(DtModelSetEntry* m) const;
147 
148  virtual QString selectedCategory() const;
149  virtual QString selectedUsedByCountry() const;
150  virtual QString selectedPath() const;
151 
152  virtual makVrf::DtTreeWidget* createEntitiesList(QWidget* p);
153  virtual DtEntityEditorHistory* createHistoryBar(QWidget* p);
154 
156  virtual void setShowHistory(bool);
157  bool showingHistory() const;
158 
159  virtual DtObjectType stringToType(const QString&) const;
160 
162  virtual void hierarchyChanged(const DtUiElementEvent& e);
163  virtual void hierarchyChanged(const DtObjectType& obj);
164 
165  const QList<QVariant>& allForces() const;
166 
168  virtual void disableItemsThatHaveThisAsAChild(const DtObjectType&);
169  virtual void enableAllItems();
170 
172  virtual bool itemContains(const DtVrfSubObjectParameterList&, const DtObjectType&) const;
173  virtual void addObjectToHierarchy(const DtObjectType&, QTreeWidgetItem*, int index = -1);
174 
175  bool executingFilter() const;
176  virtual QSize sizeHint() const;
177  virtual QSize minimumSizeHint() const;
178 
179 public:
180  virtual void removeFromHierarchy();
181  virtual void moveUp();
182  virtual void moveDown();
183  virtual void replaceInHierarchy();
184  virtual void addNewSubordinate();
185  virtual void addNewSubordinateFromExisting();
186  virtual void addToHierarchy();
187  virtual void addSubordinatesFromPalette();
188 
189 public slots:
190  virtual void fillInList();
191  virtual void deleteExisting();
192  virtual void revertExisting();
193  virtual void redisplayListIcons();
194  virtual void opdEntryAdded(DtModelSetEntry*);
195 
196 protected slots:
197  virtual void textFilter();
198  virtual void resetTextFilter();
199  virtual void exitAddSubordinatesFromPalette();
200  virtual void executeFilter();
201  virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*);
202  virtual void selectionChanged();
203  virtual void itemExpanded(QTreeWidgetItem*);
204  virtual void addObjectToHierarchy(const DtObjectType&);
205 
206 protected:
207  virtual void moveInHierarchy(int iFrom, int iTo, QTreeWidgetItem* parent);
208  virtual void replaceObjectInHierarchy(const DtObjectType& t, QTreeWidgetItem* toReplace);
209 
210  virtual void loadSubordinatesFor(QTreeWidgetItem*, const DtVrfSubObjectParameterList&);
211 
212  virtual void revertChanged(const makVrf::DtEntityMapperKey&);
213  virtual void revertChanged(DtModelSetEntry*);
214  virtual void addModelEntry(DtModelSetEntry*);
215  virtual DtEntityPaletteFilter* createFilter();
216  virtual DtEntityPaletteItem* createPaletteItem();
217  virtual DtEntityPaletteItem* createPaletteItem(DtModelSetEntry*);
218  virtual void createForcesList();
219 
220  virtual void disableInvalidItems();
221 
222  virtual void createTreeWidgetItemsFor(const std::vector<DtModelSetEntry*>&, QVector<QTreeWidgetItem*>& items);
223 
224 public:
225  boost::signal<void ()> signal_itemSelectionChanged;
226  boost::signal<void ()> signal_itemStatusChanged;
227  boost::signal<void (const QVector<QTreeWidgetItem*>&)> signal_itemsAdded;
228 
229 public:
243 
244  QLabel* mySearchLabel;
247 
248 protected:
249  DtObjectType myDisableIfContains;
254 
255  makVrv::DtDe& myDe;
256 };
257 
259 {
260 public:
261  DtEntityEditorListTreeWidget(makVrv::DtDe&,QWidget*);
262  virtual ~DtEntityEditorListTreeWidget();
263 
264 protected:
265 
266  virtual QSize sizeHint() const;
267  virtual QSize minimumSizeHint() const;
268 
269  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
270  virtual QStringList mimeTypes() const;
271  virtual void dragEnterEvent(QDragEnterEvent *d);
272  virtual void dragMoveEvent(QDragMoveEvent *d);
273  virtual void dropEvent(QDropEvent* d);
274 
275 protected:
276  makVrv::DtDe& myDe;
277 };
278 
280 {
282 }
283 
285 {
286  return myRightClickEnabled;
287 }
288 
290 {
291  return (myEntities && (myEntities->selectedItems().count() != 0));
292 }
293 
295 {
296  return myEntities;
297 }
298 
300 {
301  return myFilterOnForces;
302 }
303 
305 {
306  return myForces;
307 }
308 
310 {
311  return myCurrentlyDisplaying;
312 }
313 
315 {
316  return myExecutingFilter;
317 }
318 
320 class DT_DLL_entityeditorimpl DtEntityEditorListCreator : public makVrv::DtVirtualBaseClass
321 {
322 public:
324  DtEntityEditorListCreator(makVrv::DtDe&);
325 
327  virtual ~DtEntityEditorListCreator();
328 
330  static DtEntityEditorListCreator& instance(makVrv::DtDe&);
331 
333  static void registerInstance(makVrv::DtDe&, DtEntityEditorListCreator*);
334 
336  virtual DtEntityEditorList* create(QWidget* parent);
337 
338 protected:
339  makVrv::DtDe& myDe;
340 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)