VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
entityCreatePalette.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrvUtil/signalslib.h>
16 #include <vrvCoreQt/DtPage.h>
19 
23 
24 #include <QtWidgets/QWidget>
25 #include <QtWidgets/QToolButton>
26 #include <QtGui/QPixmap>
27 #include <QtGui/QImage>
28 #include <QtCore/QHash>
29 #include <QtWidgets/QTreeWidget>
30 
31 class QTreeWidget;
32 class QVBoxLayout;
33 class QGridLayout;
34 class QComboBox;
35 class QCheckBox;
36 class QTreeWidgetItem;
37 class QLabel;
38 class QPushButton;
39 class QLineEdit;
40 class QAbstractButton;
41 class QFrame;
42 
43 namespace makVrv
44 {
45  class DtDe;
46 }
47 
48 #define DtCreateObjectFromPaletteType "text/x-vrlCreateObjectFromPalette@Type"
49 
50 namespace makVrf
51 {
52  class DtEntityCreatePaletteLogic;
53  class DtToolButtonWrapperWidget;
54  class DtPaletteFilter;
55  class DtEntityPaletteTreeWidget;
56  class DtEntityCreatePaletteItem;
57  class DtTagSelectorWidget;
58 
61  : public makVrv::DtPage
63  {
64  Q_OBJECT
65 
66  public:
68  DtEntityCreatePalette( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0, bool hasDeployedCountries = true);
69  DtEntityCreatePalette( makVrv::DtDe& de, bool favoritesSupported = true, QWidget* parent = 0, Qt::WindowFlags flags = 0,
70  bool hasDeployedCountries = true,bool allowCombineMode = false);
71 
73  virtual ~DtEntityCreatePalette();
74 
76  virtual QIcon icon();
77 
79  virtual QString title();
80 
82  virtual const std::string& pageClassName() const;
83 
85  static const std::string& thePageClassName();
86 
87  virtual void activate() {};
88  virtual void deactivate() {};
89 
91  virtual void setSignalSelectionOnly(bool);
92 
93  virtual void setFavoritesSupported(bool);
94  virtual bool favoritesSupported() const;
95 
100  virtual void setCombinePalettes(bool combine);
101  virtual bool combinePalettes() const;
102 
104  virtual DtEntityMapperKey selectedObjectType() const;
105 
107  virtual std::vector<DtEntityMapperKey> selectedObjects() const;
108 
111  virtual void selectObject(const DtEntityMapperKey&);
112 
116  virtual void setDragCreateModeEnabled(bool);
117 
119  virtual bool showNonCreatableUnits() const;
120  virtual void setShowNonCreatableUnits(bool);
121 
123  virtual void addIgnore(const DtEntityType&);
124 
126  virtual void clearIgnore();
127 
129  virtual void setIgnore(const std::vector<DtEntityType>&);
130 
132  virtual const std::vector<DtEntityType>& ignoring() const;
133 
134  virtual void setShowFavoritesIcon(bool);
135  virtual bool showFavoritesIcon() const;
136 
138  virtual void layoutForces();
139 
140  protected:
142  void setupUi(QWidget* p, bool favoritesSupported);
143 
144  virtual bool hasDeployedCountries() const { return myHasDeployedCountries; };
145 
146  virtual void closeEvent(QCloseEvent*);
147  virtual void showEvent(QShowEvent*);
148 
149  virtual bool eventFilter(QObject* o, QEvent* e);
150 
151  public:
153  virtual void clear();
154 
156  virtual void update();
157 
159  virtual QString currentForce() const;
160 
162  virtual int currentForceType() const;
163 
165  virtual int currentForceIndex() const;
166 
168  virtual int currentDeployedCountryIndex() const;
169 
171  virtual int forceTypeAtIndex(int) const;
172 
174  virtual std::vector<std::string> currentCategories() const;
175 
177  virtual void setAccessibleCategories(const std::set<std::string>&);
178 
180  virtual QString currentDeployedCountry() const;
181 
183  virtual bool hasDeployedCountry(const QString&) const;
184 
186  virtual void insertDeployedCountry(const QString&, int);
187 
188  virtual bool initiallyVisible() const
189  {
190  return true;
191  }
192 
194  virtual void insertDeployedCountryBefore(const QString&, const QString&);
195 
197  virtual void insertDeployedCountryAfter(const QString&, const QString&);
198 
200  virtual void addDeployedCountry(const QString&);
201 
203  virtual void selectDeployedCountry(const QString&);
204 
206  virtual void selectDeployedCountry(int);
207 
209  virtual int numForces() const;
210 
212  virtual int numCategories() const;
213 
215  virtual int numDeployedCountries() const;
216 
218  virtual void addForce(const QString&, int, const QColor&, bool forceLayout = false);
219 
221  virtual QString force(int) const;
222 
224  virtual bool hasForce(int) const;
225 
227  virtual void setCategories(const DtTagSelectorWidget::Categories&);
228 
230  virtual bool hasCategory(const QString&) const;
231 
233  virtual void selectForce(const QString&);
234 
236  virtual void showForce(bool);
237 
239  virtual void enableForce(bool);
240 
242  virtual void selectForce(int);
243 
245  virtual bool isStickyCategory(const std::string&) const;
246 
248  virtual void setStickyCategories(const std::vector<std::string>&);
249 
251  virtual void selectTopLevelCategory(const std::string& s);
252 
254  virtual const std::vector<std::string>& stickyCategories() const;
255 
257  virtual const std::vector<std::string>& nonStickyCategories() const;
258 
260  virtual void selectCategories(const std::vector<std::string>&);
261 
263  virtual void clearCreateList();
264 
266  virtual void setSortingEnabled(bool);
267 
269  virtual void sizeColumns();
270 
274  virtual void addItem(const DtEntityPaletteItem&, int force);
275 
278  virtual void addPaletteItem(const DtEntityPaletteItem&);
279 
281  virtual void removePaletteItem(const DtEntityMapperKey& key, bool matchPattern = false);
282 
284  virtual void setEnabled(bool);
285 
287  void createFavoriteIcon();
288 
289  virtual void clearForces();
290  virtual void clearDeployedCountries();
291  virtual void clearCategories();
292 
294  virtual void initialize();
295 
298  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
299  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
300 
301  virtual QMenu* createRightClickMenu(DtEntityCreatePaletteItem*);
302 
303  virtual void slot_onTagsChanged(const std::vector<std::string>&);
304 
305  virtual void setCategoriesFromCounts(const std::map<std::string, int>&, const std::set<std::string>&, int totalItems);
306 
307  protected slots:
308  virtual void onItemSelectionChanged();
309  virtual void slot_onForceChanged();
310  virtual void slot_onForceChangedByButton();
311  virtual void slot_onDeployedCountryChanged();
312  virtual void slot_onItemPressed(QTreeWidgetItem*, QMouseEvent*, int);
313  virtual void slot_onItemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
314  virtual void filterItems();
315  virtual void resetFilter();
316  virtual void addToFavoritesRightClick();
317  virtual void removeFromFavoritesRightClick();
318 
319  protected:
322  std::map<std::string, QTreeWidgetItem*> myItems;
326 
328 
331  std::set<std::string> myAccessibleCategories;
332 
333  public:
334  QVBoxLayout* myMainLayout;
335  QGridLayout* myGridLayout;
342  QImage myFavoriteOn;
347 
352  };
353 
356 
359  {
360  public:
361  DtEntityCreatePaletteItem(makVrv::DtDe& de, const QImage* on = 0, const QImage* off = 0);
362 
363  virtual ~DtEntityCreatePaletteItem();
364 
365  virtual void setFavoritesSupported(bool b);
366 
367  virtual void setPaletteItem(const QString& i);
368  const QString& paletteItem() const
369  {
370  return myPaletteItem;
371  }
372 
373  virtual void setFavorite(bool b);
374  bool favorite() const
375  {
376  return myFavorite;
377  }
378 
379  virtual void setEntityMapperKey(const DtEntityMapperKey& k);
380  const DtEntityMapperKey& entityMapperKey() const
381  {
382  return myEntityMapperKey;
383  }
384 
385  virtual QVariant data(int iColumn, int iRole) const;
386 
387  protected:
388  virtual void updatePixmap();
389 
390  protected:
391  QString myPaletteItem;
395  const QImage* myFavoriteOn;
396  const QImage* myFavoriteOff;
397  QPixmap* myPixmapEnabled;
400  };
401 
404  {
405  public:
406  DtEntityPaletteTreeWidget(makVrv::DtDe& de, QWidget* p);
407  virtual ~DtEntityPaletteTreeWidget();
408 
409  virtual QSize sizeHint() const;
410 
411  bool favoritesSupported() const
412  {
413  return myFavoritesSupported;
414  }
415 
416  virtual void setFavoritesSupported(bool b);
417 
419  virtual void mousePressEvent(QMouseEvent *event);
420 
421  boost::signal<void (DtEntityMapperKey, bool)> signal_favoriteChanged;
422 
423  protected:
424  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
425 
426  protected:
428  };
429 
432  {
433  public:
436 
439 
441  static void registerInstance(makVrv::DtDe& de, DtEntityPaletteTreeWidgetCreator* instance);
442 
443  virtual DtEntityPaletteTreeWidget* create(QWidget* parent);
444 
445  protected:
447  };
448 
451  {
452  public:
455 
458 
459  virtual DtEntityCreatePaletteItem* create(const QImage* on = 0, const QImage* off = 0);
460 
461  static DtEntityCreatePaletteItemCreator& instance(makVrv::DtDe& de);
462  static void registerInstance(makVrv::DtDe& de, DtEntityCreatePaletteItemCreator*);
463 
464  protected:
466  };
467 }

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)