VR-Forces 4.3 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
14 #include <QtCore/QHash>
15 #include <QtGui/QImage>
16 #include <QtCore/QMap>
17 #include <QtCore/QString>
18 #include <QtCore/QVariant>
19 #include <QtGui/QMessageBox>
20 #include <QtGui/QItemDelegate>
21 #include <vrfExtProtocol/objectType.h>
22 #include "vrfutil/rwForces.h"
24 
25 #include <set>
26 
27 namespace makVrf
28 {
29  class DtEntityMapperKey;
30 }
31 
33 class DtFilename;
35 class DtList;
36 class QComboBox;
40 class DtModelSetEntry;
41 class QLabel;
42 class DtUiElementEvent;
43 class QPushButton;
44 class QLineEdit;
45 
46 const int DtModelRole = Qt::UserRole;
47 const int DtGlobalForcesRole = Qt::UserRole + 1;
48 
49 class DtEntityEditorList;
50 
52 {
53 public:
56  virtual bool isValid(const DtModelSetEntry*);
57 
58  void setCategory(const QString&);
59  void setUsedByCountry(const QString&);
60  void setFilterOnForces(const DtRwForces&);
61 
62  virtual DtEntityPaletteFilter* clone() const { return new DtEntityPaletteFilter(*this); };
63 
64 protected:
65  QString myCategory;
66  QString myUsedByCountry;
69 };
70 
72 {
73 public:
75  virtual QVariant data(int column, int role) const;
76 
77  virtual DtModelSetEntry* proxyModel() const;
78  virtual QList<QVariant> proxyForces() const;
79 
80  void setPaletteParent(DtEntityEditorList* p) { myPaletteParent = p; };
81  QString forcePixmapKey(DtModelSetEntry*, const QList<QVariant>&) const;
82  bool isInMasterSMS() const;
83 
84  virtual bool operator<(const QTreeWidgetItem & other ) const;
85 
86 protected:
87  virtual QImage getPixmap(const DtObjectType& o, int force) const;
88  virtual void createGrayscaleForcePixmap() const;
89 
90 protected:
92  mutable QString myForcePixmapKey;
93  mutable QImage myForcePixmap;
94  mutable QImage myGrayscaleForcePixmap;
96 };
97 
99 {
100 public:
103 
104 protected:
105  virtual void paint(QPainter *painter,
106  const QStyleOptionViewItem &option,
107  const QModelIndex &index) const;
108 };
109 
111 {
112  Q_OBJECT
113 
114 public:
115 
118 
120  virtual ~DtEntityEditorList();
121 
123  virtual void init();
124 
125  bool hasSelection() const;
126  virtual void clear();
127  virtual std::set<makVrf::DtEntityMapperKey> getSelectedInformation() const;
128  virtual std::set<makVrf::DtEntityMapperKey> getRevertableKeys() const;
129  virtual void getSelectedInformation(DtObjectType& key) const;
130  virtual void getInformation(QTreeWidgetItem*, makVrf::DtEntityMapperKey& key) const;
131  virtual void getInformation(QTreeWidgetItem*, DtObjectType& key) const;
132  virtual DtEntityPaletteItem* itemFor(const DtEntityType& t) const;
133 
134  virtual bool canRevertExisting() const;
135  virtual bool canMakeTemplate() const;
136 
138  virtual bool canDeleteExisting(bool any = false) const;
139  virtual bool selectedIsInMasterSMS() const;
140 
141  virtual bool canAddSubordinateToSelected() const;
142 
143  virtual void getCategorySelections(DtRwForces&, DtRwNLengthStringVector&);
144  virtual bool hasCategory(const QString&) const;
145 
146  virtual void select(const std::vector<DtObjectType>&);
147 
148  virtual DtObjectType selectedObjectType() const;
149  virtual std::vector<DtObjectType> selectedObjectTypes() const;
150  virtual QTreeWidgetItem* selectedItem() const;
151  virtual DtModelSetEntry* selectedModel() const;
152  virtual void setSelected(const QString&);
153  virtual void setSelected(DtModelSetEntry*);
154  virtual void selectPath(const QString& path);
155  virtual DtModelSetEntry* modelFor(QTreeWidgetItem*) const;
156  virtual int selectedItemsCount() const;
157 
158  virtual void selectUncategorized();
159  virtual void selectCategory(const QString&);
160  virtual void selectUsedByCountry(const QString&);
161 
162  QTreeWidget* entityList();
163 
164  static DtEntityEditorList* create(QWidget* parent = NULL);
165  void setRightClickEnabled(bool b);
166  bool rightClickEnabled() const;
167 
168  virtual QStringList selectedNames() const;
169  virtual void selectNames(const QStringList&);
170 
171  QTreeWidgetItem* currentlyDisplaying() const;
172 
175  virtual void setFilterOnForces(const DtRwForces& forces);
176  const DtRwForces& filterOnForces() const;
177 
178  virtual void changeModel(DtModelSetEntry* oldModel, DtModelSetEntry* newModel);
179 
180  virtual bool selectModel(DtModelSetEntry* m, bool clear = true);
181  virtual QString categoryFor(DtModelSetEntry* m) const;
182 
183  virtual QString selectedCategory() const;
184  virtual QString selectedUsedByCountry() const;
185  virtual QString selectedPath() const;
186 
187  virtual makVrf::DtTreeWidget* createEntitiesList(QWidget* p);
188  virtual DtEntityEditorHistory* createHistoryBar(QWidget* p);
189 
191  virtual void setShowHistory(bool);
192  bool showingHistory() const;
193 
194  virtual DtObjectType stringToType(const QString&) const;
195 
197  virtual void hierarchyChanged(const DtUiElementEvent& e);
198  virtual void hierarchyChanged(const DtObjectType& obj);
199 
200  const QList<QVariant>& allForces() const;
201 
203  virtual void disableItemsThatHaveThisAsAChild(const DtObjectType&);
204  virtual void enableAllItems();
205 
207  virtual bool itemContains(const DtVrfSubObjectParameterList&, const DtObjectType&) const;
208  virtual void addObjectToHierarchy(const DtObjectType&, QTreeWidgetItem*, int index = -1);
209 
210  bool executingFilter() const;
211  virtual QSize sizeHint() const;
212  virtual QSize minimumSizeHint() const;
213 
214 public:
215  virtual void removeFromHierarchy();
216  virtual void moveUp();
217  virtual void moveDown();
218  virtual void replaceInHierarchy();
219  virtual void addNewSubordinate();
220  virtual void addNewSubordinateFromExisting();
221  virtual void addToHierarchy();
222  virtual void addSubordinatesFromPalette();
223  virtual void opdEntryAdded(DtModelSetEntry*, bool select = false);
224 
225 public slots:
226  virtual void fillInList();
227  virtual void deleteExisting();
228  virtual void revertExisting();
229  virtual void redisplayListIcons();
230 
231 protected slots:
232  virtual void textFilter();
233  virtual void resetTextFilter();
234  virtual void exitAddSubordinatesFromPalette();
235  virtual void executeFilter();
236  virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*);
237  virtual void selectionChanged();
238  virtual void itemExpanded(QTreeWidgetItem*);
239  virtual void addObjectToHierarchy(const DtObjectType&);
240 
241 protected:
242  virtual void moveInHierarchy(int iFrom, int iTo, QTreeWidgetItem* parent);
243  virtual void replaceObjectInHierarchy(const DtObjectType& t, QTreeWidgetItem* toReplace);
244 
245  virtual void loadSubordinatesFor(QTreeWidgetItem*, const DtVrfSubObjectParameterList&);
246 
247  virtual void revertChanged(const makVrf::DtEntityMapperKey&);
248  virtual void revertChanged(DtModelSetEntry*);
249  virtual void addModelEntry(DtModelSetEntry*);
250  virtual DtEntityPaletteFilter* createFilter();
251  virtual DtEntityPaletteItem* createPaletteItem();
252  virtual DtEntityPaletteItem* createPaletteItem(DtModelSetEntry*);
253  virtual void createForcesList();
254 
255  virtual void disableInvalidItems();
256 
257  virtual void createTreeWidgetItemsFor(const std::vector<DtModelSetEntry*>&, QVector<QTreeWidgetItem*>& items);
258  virtual void slot_entityEntryAboutToBeRemoved(DtSimulationModelSetLoader::EntityData*);
259  virtual void slot_entityEntryAdded(DtSimulationModelSetLoader::EntityData*);
260  virtual void hideAllObjectsByObjectType(QTreeWidgetItem*, DtSimulationModelSetLoader::EntityData*);
261  virtual bool showAllObjectsByObjectType(QTreeWidgetItem*, DtSimulationModelSetLoader::EntityData*);
262 
263 public:
264  boost::signal<void ()> signal_itemSelectionChanged;
265  boost::signal<void ()> signal_itemStatusChanged;
266  boost::signal<void (const QVector<QTreeWidgetItem*>&)> signal_itemsAdded;
267 
268 public:
282 
286 
287 protected:
288  DtObjectType myDisableIfContains;
293 
295 };
296 
298 {
299 public:
301  virtual ~DtEntityEditorListTreeWidget();
302 
303 protected:
304 
305  virtual QSize sizeHint() const;
306  virtual QSize minimumSizeHint() const;
307 
308  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
309  virtual QStringList mimeTypes() const;
310  virtual void dragEnterEvent(QDragEnterEvent *d);
311  virtual void dragMoveEvent(QDragMoveEvent *d);
312  virtual void dropEvent(QDropEvent* d);
313 
314 protected:
316 };
317 
319 {
321 }
322 
324 {
325  return myRightClickEnabled;
326 }
327 
329 {
330  return (myEntities && (myEntities->selectedItems().count() != 0));
331 }
332 
334 {
335  return myEntities;
336 }
337 
339 {
340  return myFilterOnForces;
341 }
342 
344 {
345  return myForces;
346 }
347 
349 {
350  return myCurrentlyDisplaying;
351 }
352 
354 {
355  return myExecutingFilter;
356 }
357 
360 {
361 public:
364 
366  virtual ~DtEntityEditorListCreator();
367 
369  static DtEntityEditorListCreator& instance(makVrv::DtDe&);
370 
372  static void registerInstance(makVrv::DtDe&, DtEntityEditorListCreator*);
373 
375  virtual DtEntityEditorList* create(QWidget* parent);
376 
377 protected:
379 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)