VR-Forces 5.0.3 Developer's Guide
 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 
18 #include <vrvCoreQt/DtPage.h>
21 
27 #endif
28 #include <boost/signals2.hpp>
29 
30 #include <QtWidgets/QWidget>
31 #include <QtWidgets/QToolButton>
32 #include <QtGui/QPixmap>
33 #include <QtGui/QImage>
34 #include <QtCore/QHash>
35 #include <QtWidgets/QTreeWidget>
36 
37 class QTreeWidget;
38 class QVBoxLayout;
39 class QGridLayout;
40 class QComboBox;
41 class QCheckBox;
42 class QTreeWidgetItem;
43 class QLabel;
44 class QPushButton;
45 class QLineEdit;
46 class QAbstractButton;
47 class QFrame;
48 class QToolButton;
49 
50 namespace makVrv
51 {
52  class DtDe;
53 }
54 
55 #define DtCreateObjectFromPaletteType "text/x-vrlCreateObjectFromPalette@Type"
56 
57 namespace makVrf
58 {
59  class DtEntityCreatePaletteLogic;
60  class DtPaletteFilter;
61  class DtEntityPaletteTreeWidget;
62  class DtEntityCreatePaletteItem;
63  class DtTagSelectorWidget;
64  class DtForceSelectionEntryWidget;
65  class DtCountrySelectionEntryWidget;
66 
69  : public DtKeepAlivePage
71  {
72  Q_OBJECT
73 
74  public:
76  DtEntityCreatePalette( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0, bool hasDeployedCountries = true);
77  DtEntityCreatePalette( makVrv::DtDe& de, bool favoritesSupported = true, QWidget* parent = 0, Qt::WindowFlags flags = 0,
78  bool hasDeployedCountries = true,bool allowCombineMode = false);
79 
81  virtual ~DtEntityCreatePalette();
82 
84  virtual QIcon icon();
85 
88  virtual makVrv::DtQIconConfigurations qIconConfigurations() const;
89 
91  virtual QString title();
92 
94  virtual const std::string& pageClassName() const;
95 
97  static const std::string& thePageClassName();
98 
99  virtual void activate() {};
100  virtual void deactivate() {};
101 
103  virtual void setSignalSelectionOnly(bool);
104 
105  virtual void setFavoritesSupported(bool);
106  virtual bool favoritesSupported() const;
107 
112  virtual void setCombinePalettes(bool combine);
113  virtual bool combinePalettes() const;
114 
116  virtual DtEntityMapperKey selectedObjectType() const;
117 
119  virtual std::vector<DtEntityMapperKey> selectedObjects() const;
120 
123  virtual void selectObject(const DtEntityMapperKey&);
124 
128  virtual void setDragCreateModeEnabled(bool);
129 
131  virtual bool showNonCreatableUnits() const;
132  virtual void setShowNonCreatableUnits(bool);
133 
135  virtual void addIgnore(const DtEntityType&);
136 
138  virtual void clearIgnore();
139 
141  virtual void setIgnore(const std::vector<DtEntityType>&);
142 
144  virtual const std::vector<DtEntityType>& ignoring() const;
145 
146  virtual void setShowFavoritesIcon(bool);
147  virtual bool showFavoritesIcon() const;
148 
150  virtual void setHideCountries(const std::set<std::string>&);
151 
153  virtual bool keepAlive() const override;
154 
155  protected:
157  void setupUi(QWidget* p, bool favoritesSupported);
158 
159  virtual bool hasDeployedCountries() const { return myHasDeployedCountries; };
160 
161  virtual void closeEvent(QCloseEvent*);
162  virtual void showEvent(QShowEvent*);
163 
164  public:
166  virtual void clear();
167 
169  virtual void update();
170 
172  virtual QString currentForce() const;
173 
175  virtual int currentForceType() const;
176 
178  virtual int forceTypeAtIndex(int) const;
179 
181  virtual std::vector<std::string> currentCategories() const;
182 
184  virtual void setAccessibleCategories(const std::set<std::string>&);
185 
187  virtual std::string currentDeployedCountry() const;
188 
189  virtual bool initiallyVisible() const
190  {
191  return true;
192  }
193 
195  virtual void initializeCountries();
196 
198  virtual void selectDeployedCountry(const std::string&);
199 
201  virtual void selectDeployedCountry(int);
202 
204  virtual int numForces() const;
205 
207  virtual int numCategories() const;
208 
210  virtual void addForce(const QString&, int, const QColor&, const std::string& countryCode, bool forceLayout = false);
211 
213  virtual QString force(int) const;
214 
216  virtual bool hasForce(int) const;
217 
219  virtual void setCategories(const DtTagSelectorWidget::Categories&);
220 
222  virtual bool hasCategory(const QString&) const;
223 
225  virtual void selectForce(const QString&);
226 
228  virtual void showForce(bool);
229 
231  virtual void enableForce(bool);
232 
234  virtual void selectForce(int);
235 
237  virtual bool isStickyCategory(const std::string&) const;
238 
240  virtual void setStickyCategories(const std::vector<std::string>&);
241 
243  virtual void selectTopLevelCategory(const std::string& s);
244 
246  virtual const std::vector<std::string>& stickyCategories() const;
247 
249  virtual const std::vector<std::string>& nonStickyCategories() const;
250 
252  virtual void selectCategories(const std::vector<std::string>&);
253 
255  virtual void clearCreateList();
256 
258  virtual void setSortingEnabled(bool);
259 
261  virtual void sizeColumns();
262 
266  virtual void addItem(const DtEntityPaletteItem&, int force);
267 
270  virtual void addPaletteItem(const DtEntityPaletteItem&);
271 
273  virtual void removePaletteItem(const DtEntityMapperKey& key, bool matchPattern = false);
274 
276  virtual void setEnabled(bool);
277 
279  void createFavoriteIcon();
280 
281  virtual void clearForces();
282  virtual void clearDeployedCountries();
283  virtual void clearCategories();
284 
286  virtual void initialize();
287 
290  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
291  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
292 
293  virtual QMenu* createRightClickMenu(DtEntityCreatePaletteItem*);
294 
295  virtual void slot_onTagsChanged(const std::vector<std::string>&);
296 
297  virtual void setCategoriesFromCounts(const std::map<std::string, int>&, const std::set<std::string>&, int totalItems);
298 
299  virtual void resetVisuals();
300 
301  virtual void loadCustomTags();
302 
303  protected slots:
304  virtual void onItemSelectionChanged();
305  virtual void slot_onForceChanged();
306  virtual void slot_onDeployedCountryChanged();
307  virtual void slot_onItemPressed(QTreeWidgetItem*, QMouseEvent*, int);
308  virtual void slot_onItemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
309  virtual void filterItems();
310  virtual void resetFilter();
311  virtual void addToFavoritesRightClick();
312  virtual void removeFromFavoritesRightClick();
313 
314  protected:
318  std::map<std::string, QTreeWidgetItem*> myItems;
322 
324 
327  std::set<std::string> myAccessibleCategories;
328 
329  public:
330  QVBoxLayout* myMainLayout;
331  QGridLayout* myGridLayout;
335  QImage myFavoriteOn;
341 
345  };
346 
349 
352  {
353  public:
354  DtEntityCreatePaletteItem(makVrv::DtDe& de, const QImage* on = 0, const QImage* off = 0);
355 
356  virtual ~DtEntityCreatePaletteItem();
357 
358  virtual void setFavoritesSupported(bool b);
359 
360  virtual void setPaletteItem(const QString& i);
361  const QString& paletteItem() const
362  {
363  return myPaletteItem;
364  }
365 
366  virtual void resetPixmap();
367 
368  virtual void setFavorite(bool b);
369  bool favorite() const
370  {
371  return myFavorite;
372  }
373 
374  virtual void setEntityMapperKey(const DtEntityMapperKey& k);
376  {
377  return myEntityMapperKey;
378  }
379 
380  virtual QVariant data(int iColumn, int iRole) const;
381 
382  protected:
383  virtual void updatePixmap();
384 
385  protected:
386  QString myPaletteItem;
390  const QImage* myFavoriteOn;
391  const QImage* myFavoriteOff;
392  QPixmap* myPixmapEnabled;
395  };
396 
399  {
400  public:
401  DtEntityPaletteTreeWidget(makVrv::DtDe& de, QWidget* p);
402  virtual ~DtEntityPaletteTreeWidget();
403 
404  virtual QSize sizeHint() const;
405 
406  bool favoritesSupported() const
407  {
408  return myFavoritesSupported;
409  }
410 
411  virtual void setFavoritesSupported(bool b);
412 
414  virtual void mousePressEvent(QMouseEvent *event);
415 
416  boost::signals2::signal<void (DtEntityMapperKey, bool)> signal_favoriteChanged;
417 
418  protected:
419  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
420 
421  protected:
423  };
424 
427  {
428  public:
431 
434 
436  static void registerInstance(makVrv::DtDe& de, DtEntityPaletteTreeWidgetCreator* instance);
437 
438  virtual DtEntityPaletteTreeWidget* create(QWidget* parent);
439 
440  protected:
442  };
443 
446  {
447  public:
450 
453 
454  virtual DtEntityCreatePaletteItem* create(const QImage* on = 0, const QImage* off = 0);
455 
456  static DtEntityCreatePaletteItemCreator& instance(makVrv::DtDe& de);
457  static void registerInstance(makVrv::DtDe& de, DtEntityCreatePaletteItemCreator*);
458 
459  protected:
461  };
462 
465  {
466  Q_OBJECT
467  public:
468  //CTOR
470 
471  //DTOR
472  virtual ~DtLoadObjectTagsMenuItem();
473 
475  virtual QAction* createAction(makVrv::DtDe&, QWidget* parent);
476 
477  protected:
478 
479  virtual void on_triggered();
480 
481  protected:
483  };
484 }
Definition: entityCreatePaletteLogic.h:37
bool myCloseEventSent
Definition: entityCreatePalette.h:321
Definition: treeWidget.h:35
Contains makVrv::DtUserInterfaceAssembler class.
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:61
Builder for menu items.
Definition: DtMenuItem.h:23
Definition: entityMapperKey.h:23
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
QImage myFavoriteOn
Definition: entityCreatePalette.h:335
QMenu * myRightClickMenu
Definition: entityCreatePalette.h:326
QPixmap * myPixmapEnabled
Definition: entityCreatePalette.h:392
Contains makVrv::DtPage class.
const DtEntityMapperKey & entityMapperKey() const
Definition: entityCreatePalette.h:375
Definition: entityCreatePaletteLogic.h:95
A widget class for showing different items of supplied types to the logic tthat can be created...
Definition: entityCreatePalette.h:68
A widget class for allowing this page to be kept alive under certain circumstances. Implement the keepAlive() method in your subclass to do this. Default is false.
Definition: keepAlivePage.h:17
const QImage * myFavoriteOff
Definition: entityCreatePalette.h:391
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DtEntityCreatePaletteLogic * myLogic
Definition: entityCreatePalette.h:317
bool myHasDeployedCountries
Definition: entityCreatePalette.h:320
bool myFavorite
Definition: entityCreatePalette.h:389
const QImage * myFavoriteOn
Definition: entityCreatePalette.h:390
bool favorite() const
Definition: entityCreatePalette.h:369
bool myFavoritesSupported
Definition: entityCreatePalette.h:422
!!!!!!!!!!!! DtEntityPaletteTreeWidgetCreator
Definition: entityCreatePalette.h:426
bool favoritesSupported() const
Definition: entityCreatePalette.h:406
Definition: DtPage.h:150
QToolButton * myResetButton
Definition: entityCreatePalette.h:339
QPixmap * myPixmapDisabled
Definition: entityCreatePalette.h:393
QLineEdit * mySearch
Definition: entityCreatePalette.h:338
bool myAllowCombineMode
Definition: entityCreatePalette.h:344
boost::signals2::signal< void(DtEntityMapperKey, bool)> signal_favoriteChanged
Definition: entityCreatePalette.h:416
Reinitialize scenario.
Definition: entityCreatePalette.h:464
QString myPaletteItem
Definition: entityCreatePalette.h:386
The DtTagSelectorWidget will display information based on given tags and allow the user to select fro...
Definition: tagSelectorWidget.h:178
Registered creator for the tree widget item class.
Definition: entityCreatePalette.h:445
std::set< std::string > myAccessibleCategories
Definition: entityCreatePalette.h:327
Contains makVrv::DtVirtualBaseClass class.
QAbstractButton * myCurrentTopLevelButtonSelected
Definition: entityCreatePalette.h:343
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:388
DtEntityPaletteTreeWidget * myEntities
Definition: entityCreatePalette.h:334
!!!!!!!!!! DtEntityPaletteTreeWidget
Definition: entityCreatePalette.h:398
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
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:361
virtual bool hasDeployedCountries() const
Returns true if supports deployed countries.
Definition: entityCreatePalette.h:159
bool myShowFavoritesIcon
Definition: entityCreatePalette.h:325
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:192
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:482
DtTagSelectorWidget * myTags
Definition: entityCreatePalette.h:332
bool myFavoritesSupported
Definition: entityCreatePalette.h:319
QGridLayout * myGridLayout
Definition: entityCreatePalette.h:331
bool myInCreationProcess
Definition: entityCreatePalette.h:323
Base class to provide boost signal/slot management.
virtual void activate()
Called when the page is displayed.
Definition: entityCreatePalette.h:99
bool myInitialized
Definition: entityCreatePalette.h:315
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:441
QVBoxLayout * myMainLayout
Definition: entityCreatePalette.h:330
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
makVrv::DtDe & myDe
Definition: entityCreatePalette.h:460
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:75
QAbstractButton * myCurrentForceButtonSelected
Definition: entityCreatePalette.h:342
makVrv::DtSignalConnectionManager myConnections
Definition: entityCreatePalette.h:316
virtual void deactivate()
Called when the page is hidden.
Definition: entityCreatePalette.h:100
Widget that allows the selection of a country.
Definition: countrySelectionEntryWidget.h:39
QLabel * mySearchLabel
Definition: entityCreatePalette.h:337
makVrv::DtPageCreatorTemplate< DtEntityCreatePalette > DtEntityPalettePageCreator
Definition: entityCreatePalette.h:348
DtEntityMapperKey myEntityMapperKey
Definition: entityCreatePalette.h:387
bool myFavoritesSupported
Definition: entityCreatePalette.h:394
DtForceSelectionEntryWidget * myForces
Definition: entityCreatePalette.h:333
!!!!!!!!!!!!!!!!!!!!! DtEntityCreatePaletteItem
Definition: entityCreatePalette.h:351
Abstract interface for the entity creation palette.
Definition: entityCreatePaletteInterface.h:29
DtCountrySelectionEntryWidget * myUsedByCountry
Definition: entityCreatePalette.h:340
std::map< std::string, QTreeWidgetItem * > myItems
Definition: entityCreatePalette.h:318
QImage myFavoriteOff
Definition: entityCreatePalette.h:336
virtual bool initiallyVisible() const
Definition: entityCreatePalette.h:189

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)