VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
simulationObjectEditorList.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>
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;
46 
47 const int DtModelRole = Qt::UserRole;
48 const int DtGlobalForcesRole = Qt::UserRole + 1;
49 
51 
53 {
54 public:
57  virtual bool isValid(const DtModelSetEntry*);
58 
59  void setCategory(const QString&);
60  void setUsedByCountry(const QString&);
61  void setFilterOnForces(const DtRwForces&);
62 
64  virtual void ignoreObjectType(const DtObjectType&);
65 
67  virtual void removeIgnoreObjectType(const DtObjectType&);
68 
69  virtual DtEntityPaletteFilter* clone() const { return new DtEntityPaletteFilter(*this); };
70 
71 protected:
72  QString myCategory;
73  QString myUsedByCountry;
76 
77  std::set<DtString> myIgnoreObjectTypes;
78 };
79 
81 {
82 public:
84  virtual QVariant data(int column, int role) const;
85 
86  virtual DtModelSetEntry* proxyModel() const;
87  virtual QList<QVariant> proxyForces() const;
88 
89  void setPaletteParent(DtSimulationObjectEditorList* p) { myPaletteParent = p; };
90  QString forcePixmapKey(DtModelSetEntry*, const QList<QVariant>&) const;
91  bool isInMasterSMS() const;
92 
93  virtual bool operator<(const QTreeWidgetItem & other ) const;
94 
95 protected:
96  virtual QImage getPixmap(const DtObjectType& o, int force) const;
97  virtual void createGrayscaleForcePixmap() const;
98 
99 protected:
101  mutable QString myForcePixmapKey;
102  mutable QImage myForcePixmap;
103  mutable QImage myGrayscaleForcePixmap;
105 };
106 
108 {
109 public:
112 
113 protected:
114  virtual void paint(QPainter *painter,
115  const QStyleOptionViewItem &option,
116  const QModelIndex &index) const;
117 };
118 
120 {
121  Q_OBJECT
122 
123 public:
124 
127 
129  virtual ~DtSimulationObjectEditorList();
130 
132  virtual void init();
133 
134  bool hasSelection() const;
135  virtual void clear();
136  virtual std::set<makVrf::DtEntityMapperKey> getSelectedInformation() const;
137  virtual std::set<makVrf::DtEntityMapperKey> getRevertableKeys() const;
138  virtual void getSelectedInformation(DtObjectType& key) const;
139  virtual void getInformation(QTreeWidgetItem*, makVrf::DtEntityMapperKey& key) const;
140  virtual void getInformation(QTreeWidgetItem*, DtObjectType& key) const;
141  virtual DtEntityPaletteItem* itemFor(const DtEntityType& t) const;
142 
143  virtual bool canRevertExisting() const;
144  virtual bool canMakeTemplate() const;
145 
147  virtual bool canDeleteExisting(bool any = false) const;
148  virtual bool selectedIsInMasterSMS() const;
149 
150  virtual bool canAddSubordinateToSelected() const;
151 
152  virtual void getCategorySelections(DtRwForces&, DtRwNLengthStringVector&);
153  virtual bool hasCategory(const QString&) const;
154 
155  virtual void select(const std::vector<DtObjectType>&);
156 
157  virtual QString textFilter() const;
158  virtual void setTextFilter(const QString&);
159 
160  virtual DtObjectType selectedObjectType() const;
161  virtual std::vector<DtObjectType> selectedObjectTypes() const;
162  virtual QTreeWidgetItem* selectedItem() const;
163  virtual DtModelSetEntry* selectedModel() const;
164  virtual void setSelected(const QString&);
165  virtual void setSelected(DtModelSetEntry*);
166  virtual void selectPath(const QString& path);
167  virtual DtModelSetEntry* modelFor(QTreeWidgetItem*) const;
168  virtual int selectedItemsCount() const;
169  virtual bool selectedIsPartOfSimulationObjectGroup() const;
170  virtual bool itemIsPartOfSimulationObjectGroup(QTreeWidgetItem*) const;
171 
173  virtual void ignoreObjectType(const DtObjectType&);
174 
176  virtual void removeIgnoreObjectType(const DtObjectType&);
177 
178  virtual void selectUncategorized();
179  virtual void selectCategory(const QString&);
180  virtual void selectUsedByCountry(const QString&);
181 
182  QTreeWidget* entityList();
183 
184  static DtSimulationObjectEditorList* create(QWidget* parent = NULL);
185  void setRightClickEnabled(bool b);
186  bool rightClickEnabled() const;
187 
188  virtual QStringList selectedNames() const;
189  virtual void selectNames(const QStringList&);
190 
191  QTreeWidgetItem* currentlyDisplaying() const;
192 
195  virtual void setFilterOnForces(const DtRwForces& forces);
196  const DtRwForces& filterOnForces() const;
197 
198  virtual void changeModel(DtModelSetEntry* oldModel, DtModelSetEntry* newModel);
199 
200  virtual bool selectModel(DtModelSetEntry* m, bool clear = true);
201  virtual QString categoryFor(DtModelSetEntry* m) const;
202 
203  virtual QString selectedCategory() const;
204  virtual QString selectedUsedByCountry() const;
205  virtual QString selectedPath() const;
206 
207  virtual makVrf::DtTreeWidget* createEntitiesList(QWidget* p);
208  virtual DtSimulationObjectEditorHistory* createHistoryBar(QWidget* p);
209 
211  virtual void setShowHistory(bool);
212  bool showingHistory() const;
213 
214  virtual DtObjectType stringToType(const QString&) const;
215 
217  virtual void hierarchyChanged(const DtUiElementEvent& e);
218  virtual void hierarchyChanged(const DtObjectType& obj);
219 
220  const QList<QVariant>& allForces() const;
221 
223  virtual void disableItemsThatHaveThisAsAChild(const DtObjectType&);
224  virtual void enableAllItems();
225 
227  virtual bool itemContains(const DtVrfSubObjectParameterList&, const DtObjectType&) const;
228  virtual void addObjectToHierarchy(const DtObjectType&, QTreeWidgetItem*, int index = -1);
229 
230  bool executingFilter() const;
231  virtual QSize sizeHint() const;
232  virtual QSize minimumSizeHint() const;
233 
234 public:
235  virtual void removeFromHierarchy();
236  virtual void moveUp();
237  virtual void moveDown();
238  virtual void replaceInHierarchy();
239  virtual void addNewSubordinate();
240  virtual void addNewSubordinateFromExisting();
241  virtual void addToHierarchy();
242  virtual void addSubordinatesFromPalette();
243  virtual void opdEntryAdded(DtModelSetEntry*, bool select = false);
244 
245 public slots:
246  virtual void fillInList();
247  virtual void deleteExisting();
248  virtual void revertExisting();
249  virtual void executeFilter();
250  virtual void redisplayListIcons();
251  virtual void executeTextFilter();
252 
253 protected slots:
254  virtual void resetTextFilter();
255  virtual void exitAddSubordinatesFromPalette();
256  virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*);
257  virtual void selectionChanged();
258  virtual void itemExpanded(QTreeWidgetItem*);
259  virtual void addObjectToHierarchy(const DtObjectType&);
260 
261 protected:
262  virtual void moveInHierarchy(int iFrom, int iTo, QTreeWidgetItem* parent);
263  virtual void replaceObjectInHierarchy(const DtObjectType& t, QTreeWidgetItem* toReplace);
264 
265  virtual void loadSubordinatesFor(QTreeWidgetItem*, const DtVrfSubObjectParameterList&);
266  virtual void loadSimulationObjectGroup(QTreeWidgetItem* parent, DtSimulationObjectGroupModelSetEntry*);
267 
268  virtual void attachItemsToParent(QTreeWidgetItem* parent, const std::vector<DtModelSetEntry*>& toLoad);
269 
270  virtual void revertChanged(const makVrf::DtEntityMapperKey&);
271  virtual void revertChanged(DtModelSetEntry*);
272  virtual void addModelEntry(DtModelSetEntry*);
273  virtual DtEntityPaletteFilter* createFilter();
274  virtual DtEntityPaletteItem* createPaletteItem();
275  virtual DtEntityPaletteItem* createPaletteItem(DtModelSetEntry*);
276  virtual void createForcesList();
277 
278  virtual void disableInvalidItems();
279 
280  virtual void createTreeWidgetItemsFor(const std::vector<DtModelSetEntry*>&, QVector<QTreeWidgetItem*>& items);
281  virtual void slot_entityEntryAboutToBeRemoved(DtSimulationModelSetLoader::EntityData*);
282  virtual void slot_entityEntryAdded(DtSimulationModelSetLoader::EntityData*);
283  virtual void hideAllObjectsByObjectType(QTreeWidgetItem*, DtSimulationModelSetLoader::EntityData*);
284  virtual bool showAllObjectsByObjectType(QTreeWidgetItem*, DtSimulationModelSetLoader::EntityData*);
285 
286 public:
287  boost::signal<void ()> signal_itemSelectionChanged;
288  boost::signal<void ()> signal_itemStatusChanged;
289  boost::signal<void (const QVector<QTreeWidgetItem*>&)> signal_itemsAdded;
290 
291 public:
305 
309 
310 protected:
317 
319 };
320 
322 {
323 public:
326 
327  void setBlockSelectionByKeypad(bool b)
328  {
329  myBlockSelectionByKeypad = b;
330  }
331 
332  bool blockSelectionByKeypad() const
333  {
334  return myBlockSelectionByKeypad;
335  }
336 
337  virtual void keyPressEvent(QKeyEvent*);
338 
339 protected:
340 
341  virtual QSize sizeHint() const;
342  virtual QSize minimumSizeHint() const;
343 
344  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
345  virtual QStringList mimeTypes() const;
346  virtual void dragEnterEvent(QDragEnterEvent *d);
347  virtual void dragMoveEvent(QDragMoveEvent *d);
348  virtual void dropEvent(QDropEvent* d);
349 
350 protected:
352 };
353 
355 {
357 }
358 
360 {
361  return myRightClickEnabled;
362 }
363 
365 {
366  return (myEntities && (myEntities->selectedItems().count() != 0));
367 }
368 
370 {
371  return myEntities;
372 }
373 
375 {
376  return myFilterOnForces;
377 }
378 
380 {
381  return myForces;
382 }
383 
385 {
386  return myCurrentlyDisplaying;
387 }
388 
390 {
391  return myExecutingFilter;
392 }
393 
396 {
397 public:
400 
403 
406 
408  static void registerInstance(makVrv::DtDe&, DtSimulationObjectEditorListCreator*);
409 
411  virtual DtSimulationObjectEditorList* create(QWidget* parent);
412 
413 protected:
415 };

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)