VR-Forces 4.8 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 #if !defined(Q_MOC_RUN)
14 #include <vrvUtil/signalslib.h>
18 #include <vrvCoreQt/DtPage.h>
21 
25 #endif
26 #include <boost/signals2.hpp>
27 
28 #include <QtWidgets/QWidget>
29 #include <QtWidgets/QToolButton>
30 #include <QtGui/QPixmap>
31 #include <QtGui/QImage>
32 #include <QtCore/QHash>
33 #include <QtWidgets/QTreeWidget>
34 
35 class QTreeWidget;
36 class QVBoxLayout;
37 class QGridLayout;
38 class QComboBox;
39 class QCheckBox;
40 class QTreeWidgetItem;
41 class QLabel;
42 class QPushButton;
43 class QLineEdit;
44 class QAbstractButton;
45 class QFrame;
46 
47 namespace makVrv
48 {
49  class DtDe;
50 }
51 
52 #define DtCreateObjectFromPaletteType "text/x-vrlCreateObjectFromPalette@Type"
53 
54 namespace makVrf
55 {
56  class DtEntityCreatePaletteLogic;
57  class DtPaletteFilter;
58  class DtEntityPaletteTreeWidget;
59  class DtEntityCreatePaletteItem;
60  class DtTagSelectorWidget;
61  class DtForceSelectionEntryWidget;
62  class DtCountrySelectionEntryWidget;
63 
66  : public makVrv::DtPage
68  {
69  Q_OBJECT
70 
71  public:
73  DtEntityCreatePalette( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0, bool hasDeployedCountries = true);
74  DtEntityCreatePalette( makVrv::DtDe& de, bool favoritesSupported = true, QWidget* parent = 0, Qt::WindowFlags flags = 0,
75  bool hasDeployedCountries = true,bool allowCombineMode = false);
76 
78  virtual ~DtEntityCreatePalette();
79 
81  virtual QIcon icon();
82 
84  virtual QString title();
85 
87  virtual const std::string& pageClassName() const;
88 
90  static const std::string& thePageClassName();
91 
92  virtual void activate() {};
93  virtual void deactivate() {};
94 
96  virtual void setSignalSelectionOnly(bool);
97 
98  virtual void setFavoritesSupported(bool);
99  virtual bool favoritesSupported() const;
100 
105  virtual void setCombinePalettes(bool combine);
106  virtual bool combinePalettes() const;
107 
109  virtual DtEntityMapperKey selectedObjectType() const;
110 
112  virtual std::vector<DtEntityMapperKey> selectedObjects() const;
113 
116  virtual void selectObject(const DtEntityMapperKey&);
117 
121  virtual void setDragCreateModeEnabled(bool);
122 
124  virtual bool showNonCreatableUnits() const;
125  virtual void setShowNonCreatableUnits(bool);
126 
128  virtual void addIgnore(const DtEntityType&);
129 
131  virtual void clearIgnore();
132 
134  virtual void setIgnore(const std::vector<DtEntityType>&);
135 
137  virtual const std::vector<DtEntityType>& ignoring() const;
138 
139  virtual void setShowFavoritesIcon(bool);
140  virtual bool showFavoritesIcon() const;
141 
143  virtual void setHideCountries(const std::set<std::string>&);
144 
145  protected:
147  void setupUi(QWidget* p, bool favoritesSupported);
148 
149  virtual bool hasDeployedCountries() const { return myHasDeployedCountries; };
150 
151  virtual void closeEvent(QCloseEvent*);
152  virtual void showEvent(QShowEvent*);
153 
154  virtual bool eventFilter(QObject* o, QEvent* e);
155 
156  public:
158  virtual void clear();
159 
161  virtual void update();
162 
164  virtual QString currentForce() const;
165 
167  virtual int currentForceType() const;
168 
170  virtual int forceTypeAtIndex(int) const;
171 
173  virtual std::vector<std::string> currentCategories() const;
174 
176  virtual void setAccessibleCategories(const std::set<std::string>&);
177 
179  virtual std::string currentDeployedCountry() const;
180 
181  virtual bool initiallyVisible() const
182  {
183  return true;
184  }
185 
187  virtual void initializeCountries();
188 
190  virtual void selectDeployedCountry(const std::string&);
191 
193  virtual void selectDeployedCountry(int);
194 
196  virtual int numForces() const;
197 
199  virtual int numCategories() const;
200 
202  virtual void addForce(const QString&, int, const QColor&, const std::string& countryCode, bool forceLayout = false);
203 
205  virtual QString force(int) const;
206 
208  virtual bool hasForce(int) const;
209 
211  virtual void setCategories(const DtTagSelectorWidget::Categories&);
212 
214  virtual bool hasCategory(const QString&) const;
215 
217  virtual void selectForce(const QString&);
218 
220  virtual void showForce(bool);
221 
223  virtual void enableForce(bool);
224 
226  virtual void selectForce(int);
227 
229  virtual bool isStickyCategory(const std::string&) const;
230 
232  virtual void setStickyCategories(const std::vector<std::string>&);
233 
235  virtual void selectTopLevelCategory(const std::string& s);
236 
238  virtual const std::vector<std::string>& stickyCategories() const;
239 
241  virtual const std::vector<std::string>& nonStickyCategories() const;
242 
244  virtual void selectCategories(const std::vector<std::string>&);
245 
247  virtual void clearCreateList();
248 
250  virtual void setSortingEnabled(bool);
251 
253  virtual void sizeColumns();
254 
258  virtual void addItem(const DtEntityPaletteItem&, int force);
259 
262  virtual void addPaletteItem(const DtEntityPaletteItem&);
263 
265  virtual void removePaletteItem(const DtEntityMapperKey& key, bool matchPattern = false);
266 
268  virtual void setEnabled(bool);
269 
271  void createFavoriteIcon();
272 
273  virtual void clearForces();
274  virtual void clearDeployedCountries();
275  virtual void clearCategories();
276 
278  virtual void initialize();
279 
282  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
283  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
284 
285  virtual QMenu* createRightClickMenu(DtEntityCreatePaletteItem*);
286 
287  virtual void slot_onTagsChanged(const std::vector<std::string>&);
288 
289  virtual void setCategoriesFromCounts(const std::map<std::string, int>&, const std::set<std::string>&, int totalItems);
290 
291  virtual void resetVisuals();
292 
293  protected slots:
294  virtual void onItemSelectionChanged();
295  virtual void slot_onForceChanged();
296  virtual void slot_onDeployedCountryChanged();
297  virtual void slot_onItemPressed(QTreeWidgetItem*, QMouseEvent*, int);
298  virtual void slot_onItemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
299  virtual void filterItems();
300  virtual void resetFilter();
301  virtual void addToFavoritesRightClick();
302  virtual void removeFromFavoritesRightClick();
303 
304  protected:
308  std::map<std::string, QTreeWidgetItem*> myItems;
312 
314 
317  std::set<std::string> myAccessibleCategories;
318 
319  public:
320  QVBoxLayout* myMainLayout;
321  QGridLayout* myGridLayout;
325  QImage myFavoriteOn;
331 
335  };
336 
339 
342  {
343  public:
344  DtEntityCreatePaletteItem(makVrv::DtDe& de, const QImage* on = 0, const QImage* off = 0);
345 
346  virtual ~DtEntityCreatePaletteItem();
347 
348  virtual void setFavoritesSupported(bool b);
349 
350  virtual void setPaletteItem(const QString& i);
351  const QString& paletteItem() const
352  {
353  return myPaletteItem;
354  }
355 
356  virtual void resetPixmap();
357 
358  virtual void setFavorite(bool b);
359  bool favorite() const
360  {
361  return myFavorite;
362  }
363 
364  virtual void setEntityMapperKey(const DtEntityMapperKey& k);
366  {
367  return myEntityMapperKey;
368  }
369 
370  virtual QVariant data(int iColumn, int iRole) const;
371 
372  protected:
373  virtual void updatePixmap();
374 
375  protected:
376  QString myPaletteItem;
380  const QImage* myFavoriteOn;
381  const QImage* myFavoriteOff;
382  QPixmap* myPixmapEnabled;
385  };
386 
389  {
390  public:
391  DtEntityPaletteTreeWidget(makVrv::DtDe& de, QWidget* p);
392  virtual ~DtEntityPaletteTreeWidget();
393 
394  virtual QSize sizeHint() const;
395 
396  bool favoritesSupported() const
397  {
398  return myFavoritesSupported;
399  }
400 
401  virtual void setFavoritesSupported(bool b);
402 
404  virtual void mousePressEvent(QMouseEvent *event);
405 
406  boost::signals2::signal<void (DtEntityMapperKey, bool)> signal_favoriteChanged;
407 
408  protected:
409  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
410 
411  protected:
413  };
414 
417  {
418  public:
421 
424 
426  static void registerInstance(makVrv::DtDe& de, DtEntityPaletteTreeWidgetCreator* instance);
427 
428  virtual DtEntityPaletteTreeWidget* create(QWidget* parent);
429 
430  protected:
432  };
433 
436  {
437  public:
440 
443 
444  virtual DtEntityCreatePaletteItem* create(const QImage* on = 0, const QImage* off = 0);
445 
446  static DtEntityCreatePaletteItemCreator& instance(makVrv::DtDe& de);
447  static void registerInstance(makVrv::DtDe& de, DtEntityCreatePaletteItemCreator*);
448 
449  protected:
451  };
452 }
Definition: entityCreatePaletteLogic.h:37
bool myCloseEventSent
Definition: entityCreatePalette.h:311
Definition: treeWidget.h:33
Contains makVrv::DtUserInterfaceAssembler class.
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:57
Definition: entityMapperKey.h:23
Virtual base class.
Definition: DtVirtualBaseClass.h:22
QImage myFavoriteOn
Definition: entityCreatePalette.h:325
QPushButton * myResetButton
Definition: entityCreatePalette.h:329
QMenu * myRightClickMenu
Definition: entityCreatePalette.h:316
QPixmap * myPixmapEnabled
Definition: entityCreatePalette.h:382
Contains makVrv::DtPage class.
const DtEntityMapperKey & entityMapperKey() const
Definition: entityCreatePalette.h:365
Definition: entityCreatePaletteLogic.h:95
A widget class for showing different items of supplied types to the logic tthat can be created...
Definition: entityCreatePalette.h:65
const QImage * myFavoriteOff
Definition: entityCreatePalette.h:381
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DtEntityCreatePaletteLogic * myLogic
Definition: entityCreatePalette.h:307
bool myHasDeployedCountries
Definition: entityCreatePalette.h:310
bool myFavorite
Definition: entityCreatePalette.h:379
const QImage * myFavoriteOn
Definition: entityCreatePalette.h:380
bool favorite() const
Definition: entityCreatePalette.h:359
bool myFavoritesSupported
Definition: entityCreatePalette.h:412
!!!!!!!!!!!! DtEntityPaletteTreeWidgetCreator
Definition: entityCreatePalette.h:416
bool favoritesSupported() const
Definition: entityCreatePalette.h:396
Definition: DtPage.h:146
QPixmap * myPixmapDisabled
Definition: entityCreatePalette.h:383
QLineEdit * mySearch
Definition: entityCreatePalette.h:328
bool myAllowCombineMode
Definition: entityCreatePalette.h:334
boost::signals2::signal< void(DtEntityMapperKey, bool)> signal_favoriteChanged
Definition: entityCreatePalette.h:406
QString myPaletteItem
Definition: entityCreatePalette.h:376
The DtTagSelectorWidget will display information based on given tags and allow the user to select fro...
Definition: tagSelectorWidget.h:167
Registered creator for the tree widget item class.
Definition: entityCreatePalette.h:435
std::set< std::string > myAccessibleCategories
Definition: entityCreatePalette.h:317
Contains makVrv::DtVirtualBaseClass class.
QAbstractButton * myCurrentTopLevelButtonSelected
Definition: entityCreatePalette.h:333
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:378
DtEntityPaletteTreeWidget * myEntities
Definition: entityCreatePalette.h:324
!!!!!!!!!! DtEntityPaletteTreeWidget
Definition: entityCreatePalette.h:388
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:30
Logic for adding items to the entity create palette. Add a DtPaletteFilter to filter beyond the categ...
Definition: entityCreatePaletteLogic.h:56
const QString & paletteItem() const
Definition: entityCreatePalette.h:351
virtual bool hasDeployedCountries() const
Returns true if supports deployed countries.
Definition: entityCreatePalette.h:149
bool myShowFavoritesIcon
Definition: entityCreatePalette.h:315
std::map< int, CategoriesByCategory > Categories
Map by rank of the categories. Note that rank 0 means this is a top level category icon...
Definition: tagSelectorWidget.h:181
DtTagSelectorWidget * myTags
Definition: entityCreatePalette.h:322
bool myFavoritesSupported
Definition: entityCreatePalette.h:309
QGridLayout * myGridLayout
Definition: entityCreatePalette.h:321
bool myInCreationProcess
Definition: entityCreatePalette.h:313
Base class to provide boost signal/slot management.
virtual void activate()
Called when the page is displayed.
Definition: entityCreatePalette.h:92
bool myInitialized
Definition: entityCreatePalette.h:305
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:431
QVBoxLayout * myMainLayout
Definition: entityCreatePalette.h:320
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:450
QAbstractButton * myCurrentForceButtonSelected
Definition: entityCreatePalette.h:332
makVrv::DtSignalConnectionManager myConnections
Definition: entityCreatePalette.h:306
virtual void deactivate()
Called when the page is hidden.
Definition: entityCreatePalette.h:93
Widget that allows the selection of a country.
Definition: countrySelectionEntryWidget.h:39
QLabel * mySearchLabel
Definition: entityCreatePalette.h:327
makVrv::DtPageCreatorTemplate< DtEntityCreatePalette > DtEntityPalettePageCreator
Definition: entityCreatePalette.h:338
DtEntityMapperKey myEntityMapperKey
Definition: entityCreatePalette.h:377
bool myFavoritesSupported
Definition: entityCreatePalette.h:384
DtForceSelectionEntryWidget * myForces
Definition: entityCreatePalette.h:323
!!!!!!!!!!!!!!!!!!!!! DtEntityCreatePaletteItem
Definition: entityCreatePalette.h:341
Abstract interface for the entity creation palette.
Definition: entityCreatePaletteInterface.h:29
DtCountrySelectionEntryWidget * myUsedByCountry
Definition: entityCreatePalette.h:330
std::map< std::string, QTreeWidgetItem * > myItems
Definition: entityCreatePalette.h:308
QImage myFavoriteOff
Definition: entityCreatePalette.h:326
virtual bool initiallyVisible() const
Definition: entityCreatePalette.h:181

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)