VR-Forces 4.7 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>
17 #include <vrvCoreQt/DtPage.h>
20 
24 
25 #include <QtWidgets/QWidget>
26 #include <QtWidgets/QToolButton>
27 #include <QtGui/QPixmap>
28 #include <QtGui/QImage>
29 #include <QtCore/QHash>
30 #include <QtWidgets/QTreeWidget>
31 
32 class QTreeWidget;
33 class QVBoxLayout;
34 class QGridLayout;
35 class QComboBox;
36 class QCheckBox;
37 class QTreeWidgetItem;
38 class QLabel;
39 class QPushButton;
40 class QLineEdit;
41 class QAbstractButton;
42 class QFrame;
43 
44 namespace makVrv
45 {
46  class DtDe;
47 }
48 
49 #define DtCreateObjectFromPaletteType "text/x-vrlCreateObjectFromPalette@Type"
50 
51 namespace makVrf
52 {
53  class DtEntityCreatePaletteLogic;
54  class DtToolButtonWrapperWidget;
55  class DtPaletteFilter;
56  class DtEntityPaletteTreeWidget;
57  class DtEntityCreatePaletteItem;
58  class DtTagSelectorWidget;
59 
62  : public makVrv::DtPage
64  {
65  Q_OBJECT
66 
67  public:
69  DtEntityCreatePalette( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0, bool hasDeployedCountries = true);
70  DtEntityCreatePalette( makVrv::DtDe& de, bool favoritesSupported = true, QWidget* parent = 0, Qt::WindowFlags flags = 0,
71  bool hasDeployedCountries = true,bool allowCombineMode = false);
72 
74  virtual ~DtEntityCreatePalette();
75 
77  virtual QIcon icon();
78 
80  virtual QString title();
81 
83  virtual const std::string& pageClassName() const;
84 
86  static const std::string& thePageClassName();
87 
88  virtual void activate() {};
89  virtual void deactivate() {};
90 
92  virtual void setSignalSelectionOnly(bool);
93 
94  virtual void setFavoritesSupported(bool);
95  virtual bool favoritesSupported() const;
96 
101  virtual void setCombinePalettes(bool combine);
102  virtual bool combinePalettes() const;
103 
105  virtual DtEntityMapperKey selectedObjectType() const;
106 
108  virtual std::vector<DtEntityMapperKey> selectedObjects() const;
109 
112  virtual void selectObject(const DtEntityMapperKey&);
113 
117  virtual void setDragCreateModeEnabled(bool);
118 
120  virtual bool showNonCreatableUnits() const;
121  virtual void setShowNonCreatableUnits(bool);
122 
124  virtual void addIgnore(const DtEntityType&);
125 
127  virtual void clearIgnore();
128 
130  virtual void setIgnore(const std::vector<DtEntityType>&);
131 
133  virtual const std::vector<DtEntityType>& ignoring() const;
134 
135  virtual void setShowFavoritesIcon(bool);
136  virtual bool showFavoritesIcon() const;
137 
139  virtual void layoutForces();
140 
141  protected:
143  void setupUi(QWidget* p, bool favoritesSupported);
144 
145  virtual bool hasDeployedCountries() const { return myHasDeployedCountries; };
146 
147  virtual void closeEvent(QCloseEvent*);
148  virtual void showEvent(QShowEvent*);
149 
150  virtual bool eventFilter(QObject* o, QEvent* e);
151 
152  public:
154  virtual void clear();
155 
157  virtual void update();
158 
160  virtual QString currentForce() const;
161 
163  virtual int currentForceType() const;
164 
166  virtual int currentForceIndex() const;
167 
169  virtual int currentDeployedCountryIndex() const;
170 
172  virtual int forceTypeAtIndex(int) const;
173 
175  virtual std::vector<std::string> currentCategories() const;
176 
178  virtual void setAccessibleCategories(const std::set<std::string>&);
179 
181  virtual QString currentDeployedCountry() const;
182 
184  virtual bool hasDeployedCountry(const QString&) const;
185 
187  virtual void insertDeployedCountry(const QString&, int);
188 
189  virtual bool initiallyVisible() const
190  {
191  return true;
192  }
193 
195  virtual void insertDeployedCountryBefore(const QString&, const QString&);
196 
198  virtual void insertDeployedCountryAfter(const QString&, const QString&);
199 
201  virtual void addDeployedCountry(const QString&);
202 
204  virtual void selectDeployedCountry(const QString&);
205 
207  virtual void selectDeployedCountry(int);
208 
210  virtual int numForces() const;
211 
213  virtual int numCategories() const;
214 
216  virtual int numDeployedCountries() const;
217 
219  virtual void addForce(const QString&, int, const QColor&, bool forceLayout = false);
220 
222  virtual QString force(int) const;
223 
225  virtual bool hasForce(int) const;
226 
228  virtual void setCategories(const DtTagSelectorWidget::Categories&);
229 
231  virtual bool hasCategory(const QString&) const;
232 
234  virtual void selectForce(const QString&);
235 
237  virtual void showForce(bool);
238 
240  virtual void enableForce(bool);
241 
243  virtual void selectForce(int);
244 
246  virtual bool isStickyCategory(const std::string&) const;
247 
249  virtual void setStickyCategories(const std::vector<std::string>&);
250 
252  virtual void selectTopLevelCategory(const std::string& s);
253 
255  virtual const std::vector<std::string>& stickyCategories() const;
256 
258  virtual const std::vector<std::string>& nonStickyCategories() const;
259 
261  virtual void selectCategories(const std::vector<std::string>&);
262 
264  virtual void clearCreateList();
265 
267  virtual void setSortingEnabled(bool);
268 
270  virtual void sizeColumns();
271 
275  virtual void addItem(const DtEntityPaletteItem&, int force);
276 
279  virtual void addPaletteItem(const DtEntityPaletteItem&);
280 
282  virtual void removePaletteItem(const DtEntityMapperKey& key, bool matchPattern = false);
283 
285  virtual void setEnabled(bool);
286 
288  void createFavoriteIcon();
289 
290  virtual void clearForces();
291  virtual void clearDeployedCountries();
292  virtual void clearCategories();
293 
295  virtual void initialize();
296 
299  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
300  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
301 
302  virtual QMenu* createRightClickMenu(DtEntityCreatePaletteItem*);
303 
304  virtual void slot_onTagsChanged(const std::vector<std::string>&);
305 
306  virtual void setCategoriesFromCounts(const std::map<std::string, int>&, const std::set<std::string>&, int totalItems);
307 
308  virtual void resetVisuals();
309 
310  protected slots:
311  virtual void onItemSelectionChanged();
312  virtual void slot_onForceChanged();
313  virtual void slot_onForceChangedByButton();
314  virtual void slot_onDeployedCountryChanged();
315  virtual void slot_onItemPressed(QTreeWidgetItem*, QMouseEvent*, int);
316  virtual void slot_onItemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
317  virtual void filterItems();
318  virtual void resetFilter();
319  virtual void addToFavoritesRightClick();
320  virtual void removeFromFavoritesRightClick();
321 
322  protected:
326  std::map<std::string, QTreeWidgetItem*> myItems;
330 
332 
335  std::set<std::string> myAccessibleCategories;
336 
337  public:
338  QVBoxLayout* myMainLayout;
339  QGridLayout* myGridLayout;
346  QImage myFavoriteOn;
351 
356  };
357 
360 
363  {
364  public:
365  DtEntityCreatePaletteItem(makVrv::DtDe& de, const QImage* on = 0, const QImage* off = 0);
366 
367  virtual ~DtEntityCreatePaletteItem();
368 
369  virtual void setFavoritesSupported(bool b);
370 
371  virtual void setPaletteItem(const QString& i);
372  const QString& paletteItem() const
373  {
374  return myPaletteItem;
375  }
376 
377  virtual void resetPixmap();
378 
379  virtual void setFavorite(bool b);
380  bool favorite() const
381  {
382  return myFavorite;
383  }
384 
385  virtual void setEntityMapperKey(const DtEntityMapperKey& k);
386  const DtEntityMapperKey& entityMapperKey() const
387  {
388  return myEntityMapperKey;
389  }
390 
391  virtual QVariant data(int iColumn, int iRole) const;
392 
393  protected:
394  virtual void updatePixmap();
395 
396  protected:
397  QString myPaletteItem;
401  const QImage* myFavoriteOn;
402  const QImage* myFavoriteOff;
403  QPixmap* myPixmapEnabled;
406  };
407 
410  {
411  public:
412  DtEntityPaletteTreeWidget(makVrv::DtDe& de, QWidget* p);
413  virtual ~DtEntityPaletteTreeWidget();
414 
415  virtual QSize sizeHint() const;
416 
417  bool favoritesSupported() const
418  {
419  return myFavoritesSupported;
420  }
421 
422  virtual void setFavoritesSupported(bool b);
423 
425  virtual void mousePressEvent(QMouseEvent *event);
426 
427  boost::signal<void (DtEntityMapperKey, bool)> signal_favoriteChanged;
428 
429  protected:
430  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
431 
432  protected:
434  };
435 
438  {
439  public:
442 
445 
447  static void registerInstance(makVrv::DtDe& de, DtEntityPaletteTreeWidgetCreator* instance);
448 
449  virtual DtEntityPaletteTreeWidget* create(QWidget* parent);
450 
451  protected:
453  };
454 
457  {
458  public:
461 
464 
465  virtual DtEntityCreatePaletteItem* create(const QImage* on = 0, const QImage* off = 0);
466 
467  static DtEntityCreatePaletteItemCreator& instance(makVrv::DtDe& de);
468  static void registerInstance(makVrv::DtDe& de, DtEntityCreatePaletteItemCreator*);
469 
470  protected:
472  };
473 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)