VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
createObjectPalette.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #if !defined(Q_MOC_RUN)
11 
15 #include <vrvCoreQt/DtPage.h>
18 
24 #endif
25 #include <boost/signals2.hpp>
26 
27 #include <QtWidgets/QWidget>
28 #include <QtWidgets/QToolButton>
29 #include <QtGui/QPixmap>
30 #include <QtGui/QImage>
31 #include <QtCore/QHash>
32 #include <QtWidgets/QTreeWidget>
33 #include <QtWidgets/QStyledItemDelegate>
34 
35 class QTreeWidget;
36 class QVBoxLayout;
37 class QGridLayout;
38 class QSpacerItem;
39 class QComboBox;
40 class QCheckBox;
41 class QTextBrowser;
42 class QTreeWidgetItem;
43 class QLabel;
44 class QPushButton;
45 class QLineEdit;
46 class QAbstractButton;
47 class QFrame;
48 class QToolButton;
49 class QSplitter;
50 
51 namespace makVrv
52 {
53  class DtDe;
54 }
55 
56 #define DtCreateObjectFromPaletteType "text/x-vrlCreateObjectFromPalette@Type"
57 
58 namespace makVrf
59 {
60  class DtCreateObjectPaletteLogic;
61  class DtPaletteFilter;
62  class DtCreateObjectPaletteTreeWidget;
63  class DtCreateObjectPaletteTreeWidgetItem;
64  struct DtCreateObjectPaletteItem;
65  class DtTagSelectorWidget;
66  class DtForceSelectionEntryWidget;
67  class DtCountrySelectionEntryWidget;
68  class DtSearchWidget;
69 
72  : public DtKeepAlivePage
74  {
75  Q_OBJECT
76 
77  public:
79  DtCreateObjectPalette( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0, bool hasDeployedCountries = true);
80 
82  virtual ~DtCreateObjectPalette();
83 
85  virtual QIcon icon();
86 
89  virtual makVrv::DtQIconConfigurations qIconConfigurations() const;
90 
92  virtual QString title();
93 
95  virtual const std::string& pageClassName() const;
96 
98  static const std::string& thePageClassName();
99 
100  virtual void activate() {};
101  virtual void deactivate() {};
102 
104  virtual void setSignalSelectionOnly(bool);
105 
106  virtual void setFavoritesSupported(bool);
107  virtual bool favoritesSupported() const;
108 
110  virtual DtEntityMapperKey selectedObjectType() const;
111 
113  virtual std::vector<DtEntityMapperKey> selectedObjects() const;
114 
117  virtual void selectObject(const DtEntityMapperKey&);
118 
122  virtual void setDragCreateModeEnabled(bool);
123 
125  virtual bool showNonCreatableUnits() const;
126  virtual void setShowNonCreatableUnits(bool);
127 
128  virtual bool hideTitle() const { return true; };
129 
131  virtual void addIgnore(const DtEntityType&);
132 
134  virtual void clearIgnore();
135 
137  virtual void setIgnore(const std::vector<DtEntityType>&);
138 
140  virtual const std::vector<DtEntityType>& ignoring() const;
141 
142  virtual void setShowFavoritesIcon(bool);
143  virtual bool showFavoritesIcon() const;
144 
146  virtual void setHideCountries(const std::set<std::string>&);
147 
149  virtual bool keepAlive() const override;
150 
151  virtual void setHasDeployedCountries(bool);
152  virtual bool hasDeployedCountries() const { return myHasDeployedCountries; };
153 
155  virtual void setShowCountsOnObjectList(bool);
157  {
158  return myShowCountsOnObjectList;
159  }
160 
161  protected:
163  void setupUi(QWidget* p, bool favoritesSupported);
164  void createObjectCreationInformation();
165 
166  virtual void closeEvent(QCloseEvent*);
167  virtual void showEvent(QShowEvent*);
168 
169  virtual void aboutToShow() override;
170 
171  public:
173  virtual void clear();
174 
176  virtual void update();
177 
179  virtual QString currentForce() const;
180 
182  virtual int currentForceType() const;
183 
185  virtual int forceTypeAtIndex(int) const;
186 
188  virtual std::vector<std::string> currentCategories() const;
189 
191  virtual std::string currentDeployedCountry() const;
192 
193  virtual bool initiallyVisible() const override
194  {
195  return true;
196  }
197 
199  virtual void initializeCountries();
200 
202  virtual void selectDeployedCountry(const std::string&);
203 
205  virtual void selectDeployedCountry(int);
206 
208  virtual int numForces() const;
209 
211  virtual int numCategories() const;
212 
214  virtual void addForce(const QString&, int, const QColor&, const std::string& countryCode, bool forceLayout = false);
215 
217  virtual QString force(int) const;
218 
220  virtual bool hasForce(int) const;
221 
223  virtual void setCategories(const DtTagSelectorWidget::Categories&);
224 
226  virtual bool hasCategory(const QString&) const;
227 
229  virtual void selectForce(const QString&);
230 
232  virtual void showForce(bool);
233 
235  virtual void enableForce(bool);
236 
238  virtual void selectForce(int);
239 
241  virtual bool isStickyCategory(const std::string&) const;
242 
244  virtual void setStickyCategories(const std::vector<std::string>&);
245 
247  virtual void selectTopLevelCategory(const std::string& s);
248 
250  virtual DtString topLevelCategory(int) const;
251 
252  virtual QTreeWidgetItem* itemFor(const DtCreateObjectPaletteItem& paletteItem, int force) const;
253 
255  virtual const std::vector<std::string>& stickyCategories() const;
256 
258  virtual void selectCategories(const std::vector<std::string>&);
259 
261  virtual void clearCreateList();
262 
264  virtual void sortItems();
265 
267  virtual void sizeColumns();
268 
272  virtual void addItem(const DtCreateObjectPaletteItem&, int force);
273 
276  virtual void addPaletteItem(const DtCreateObjectPaletteItem&);
277 
279  virtual void removePaletteItem(const DtEntityMapperKey& key, bool matchPattern = false);
280 
282  virtual void setEnabled(bool);
283 
285  void createFavoriteIcon();
286 
287  virtual void clearForces();
288  virtual void clearDeployedCountries();
289  virtual void clearCategories();
290 
292  virtual void initialize();
293 
296  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
297  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
298 
299  virtual QMenu* createRightClickMenu(DtCreateObjectPaletteTreeWidgetItem*);
300 
301  virtual void slot_onTagsChanged(const std::vector<std::string>&);
302 
303  virtual void setCategoriesFromCounts(const std::map<std::string, int>&, const std::set<std::string>&, int totalItems,
304  const std::vector<std::string>& categoriesToResetTo = std::vector<std::string>(), const std::set<std::string>& allCategories = std::set<std::string>());
305 
306  virtual void resetVisuals();
307 
308  virtual void loadCustomTags();
309  virtual void fillInObjectCreationInformation(DtCreateObjectPaletteTreeWidgetItem*);
310 
311  virtual void slot_setTagFromObjectInformation(std::vector<std::string> tag);
312  virtual QTreeWidgetItem* topLevelItemFor(const std::string&);
313 
314  virtual void resetCategoriesBasedOnVisibleItems();
315  virtual void resetParentVisibility();
316 
317  protected slots:
318  virtual void showInformationForItem(const QModelIndex&);
319  virtual void onItemSelectionChanged();
320  virtual void slot_onForceChanged();
321  virtual void slot_onDeployedCountryChanged();
322  virtual void slot_onItemPressed(QTreeWidgetItem*, QMouseEvent*, int);
323  virtual void slot_onItemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
324  virtual void filterItems();
325  virtual void resetFilter();
326  virtual void addToFavoritesRightClick();
327  virtual void removeFromFavoritesRightClick();
328 
329  protected:
333  std::map<std::string, QTreeWidgetItem*> myItems;
334  std::map<std::string, QTreeWidgetItem*> myTopLevelItems;
338 
340  bool myKeepSameInformation = false;
341 
344  bool myShowCountsOnObjectList = false;
345 
346  public:
347  QVBoxLayout* myMainLayout;
349  QGridLayout* myGridLayout;
353  QImage myFavoriteOn;
356 
359 
360  QSplitter* mySplitter;
367  };
368 
371 
374  {
375  public:
376  DtCreateObjectPaletteTreeWidgetItem(makVrv::DtDe& de, const QImage* on = 0);
377 
379 
380  virtual void setFavoritesSupported(bool b);
381 
382  virtual void setPaletteItem(const QString& i);
383  const QString& paletteItem() const
384  {
385  return myPaletteItem;
386  }
387 
388  virtual void resetPixmap();
389 
390  virtual void setFavorite(bool b);
391  bool favorite() const
392  {
393  return myFavorite;
394  }
395 
396  virtual void setEntityMapperKey(const DtEntityMapperKey& k);
398  {
399  return myEntityMapperKey;
400  }
401 
402  DtEntityType entityType() const
403  {
404  return myEntityMapperKey;
405  }
406 
407  virtual QVariant data(int iColumn, int iRole) const override;
408 
409  protected:
410  virtual void updatePixmap();
411 
412  protected:
413  QString myPaletteItem;
417  const QImage* myFavoriteOn;
418  QPixmap* myPixmapEnabled;
421  };
422 
425  {
426  Q_OBJECT
427 
428  public:
431 
432  virtual QSize sizeHint() const;
433 
434  bool favoritesSupported() const
435  {
436  return myFavoritesSupported;
437  }
438 
439  virtual void setFavoritesSupported(bool b);
440  virtual bool viewportEvent(QEvent *event) override;
441 
442  signals:
443  void showInformationForItem(const QModelIndex&);
444 
445  protected:
446  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
447 
448  protected:
450  QModelIndex myLastHoverIndex;
451  };
452 
455  {
456  public:
459 
462 
464  static void registerInstance(makVrv::DtDe& de, DtCreateObjectPaletteTreeWidgetCreator* instance);
465 
466  virtual DtCreateObjectPaletteTreeWidget* create(QWidget* parent);
467 
468  protected:
470  };
471 
474  {
475  public:
478 
481 
482  virtual DtCreateObjectPaletteTreeWidgetItem* create(const QImage* on = 0);
483 
485  static void registerInstance(makVrv::DtDe& de, DtCreateObjectPaletteTreeWidgetItemCreator*);
486 
487  protected:
489  };
490 
493  {
494  Q_OBJECT
495  public:
496  //CTOR
498 
499  //DTOR
500  virtual ~DtLoadObjectTagsMenuItem();
501 
503  virtual QAction* createAction(makVrv::DtDe&, QWidget* parent);
504 
505  protected:
506 
507  virtual void on_triggered();
508 
509  protected:
511  };
512 
514  {
515  public:
517 
518  virtual QVariant data(int col, int role) const override;
519 
520  virtual void setTitle(const QString&);
521  virtual void setObjectCount(int i);
522  virtual void setShowObjectCount(bool b);
523  bool showObjectCount() const
524  {
525  return myShowObjectCount;
526  }
527 
528  virtual bool operator<(const QTreeWidgetItem&) const override;
529 
530  protected:
533  QString myTitle;
534  };
535 
537  {
538  public:
541 
544 
545  virtual DtCreatePaletteTopLevelTreeWidgetItem* create();
546 
548  static void registerInstance(makVrv::DtDe& de, DtCreatePaletteTopLevelTreeWidgetItemCreator*);
549 
550  protected:
552  };
553 }
virtual void deactivate()
Called when the page is hidden.
Definition: createObjectPalette.h:101
bool showObjectCount() const
Definition: createObjectPalette.h:523
Definition: treeWidget.h:35
Contains makVrv::DtUserInterfaceAssembler class.
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:62
QMenu * myRightClickMenu
Definition: createObjectPalette.h:343
!!!!!!!!!!!! DtCreateObkectPaletteTreeWidgetCreator
Definition: createObjectPalette.h:454
Builder for menu items.
Definition: DtMenuItem.h:23
Definition: entityMapperKey.h:19
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
bool myCloseEventSent
Definition: createObjectPalette.h:337
QAbstractButton * myCurrentTopLevelButtonSelected
Definition: createObjectPalette.h:358
bool myFavoritesSupported
Definition: createObjectPalette.h:420
DtForceSelectionEntryWidget * myForces
Definition: createObjectPalette.h:351
Contains makVrv::DtPage class declaration.
QImage myFavoriteOn
Definition: createObjectPalette.h:353
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 DtEntityMapperKey & entityMapperKey() const
Definition: createObjectPalette.h:397
int myObjectCount
Definition: createObjectPalette.h:531
Definition: createObjectPaletteLogic.h:45
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DtSearchWidget * mySearchWidget
Definition: createObjectPalette.h:354
QGridLayout * myGridLayout
Definition: createObjectPalette.h:349
bool favoritesSupported() const
Definition: createObjectPalette.h:434
makVrv::DtPageCreatorTemplate< DtCreateObjectPalette > DtCreateObjectPalettePageCreator
Definition: createObjectPalette.h:370
std::map< std::string, QTreeWidgetItem * > myItems
Definition: createObjectPalette.h:333
QVBoxLayout * myObjectInformationLayout
Definition: createObjectPalette.h:362
QLabel * myObjectCreationPicture
Definition: createObjectPalette.h:364
DtCountrySelectionEntryWidget * myUsedByCountry
Definition: createObjectPalette.h:355
Definition: createObjectPalette.h:536
QWidget * myObjectCreationInformation
Definition: createObjectPalette.h:361
bool myFavoritesSupported
Definition: createObjectPalette.h:449
const QImage * myFavoriteOn
Definition: createObjectPalette.h:417
virtual void activate()
Called when the page is displayed.
Definition: createObjectPalette.h:100
Registered creator for the tree widget item class.
Definition: createObjectPalette.h:473
QPixmap * myPixmapDisabled
Definition: createObjectPalette.h:419
bool myFavoritesSupported
Definition: createObjectPalette.h:335
Definition: DtPage.h:181
QPixmap * myPixmapEnabled
Definition: createObjectPalette.h:418
QLabel * myObjectCreationDescription
Definition: createObjectPalette.h:365
Reinitialize scenario.
Definition: createObjectPalette.h:492
The DtTagSelectorWidget will display information based on given tags and allow the user to select fro...
Definition: tagSelectorWidget.h:178
makVrv::DtSignalConnectionManager myConnections
Definition: createObjectPalette.h:331
virtual bool hasDeployedCountries() const
Returns true if supports deployed countries.
Definition: createObjectPalette.h:152
makVrv::DtDe & myDe
Definition: createObjectPalette.h:488
std::map< std::string, QTreeWidgetItem * > myTopLevelItems
Definition: createObjectPalette.h:334
Contains makVrv::DtVirtualBaseClass class.
QModelIndex myLastHoverIndex
Definition: createObjectPalette.h:450
bool myInCreationProcess
Definition: createObjectPalette.h:339
DtEntityType entityType() const
Definition: createObjectPalette.h:402
QVBoxLayout * myMainLayout
Definition: createObjectPalette.h:347
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtDe & myDe
Definition: createObjectPalette.h:415
DtTagSelectorWidget * myObjectTags
Definition: createObjectPalette.h:366
bool myInitialized
Definition: createObjectPalette.h:330
Definition: createObjectPalette.h:513
Logic for adding items to the object creation palette. Add a DtPaletteFilter to filter beyond the cat...
Definition: createObjectPaletteFilters.h:44
QWidget * myObjectSelection
Definition: createObjectPalette.h:348
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:206
QAbstractButton * myCurrentForceButtonSelected
Definition: createObjectPalette.h:357
makVrv::DtDe & myDe
Definition: createObjectPalette.h:510
bool showCountsOnObjectList() const
Definition: createObjectPalette.h:156
Allows for setting of icons that will switch with the theme.
Definition: treeWidget.h:190
A widget class for showing different items of supplied types to the logic tthat can be created...
Definition: createObjectPalette.h:71
DtCreateObjectPaletteLogic * myLogic
Definition: createObjectPalette.h:332
Base class to provide boost signal/slot management.
!!!!!!!!!!!!!!!!!!!!! DtCreateObjectPaletteTreeWidgetItem
Definition: createObjectPalette.h:373
Definition: searchWidget.h:22
bool myHasDeployedCountries
Definition: createObjectPalette.h:336
bool myShowFavoritesIcon
Definition: createObjectPalette.h:342
virtual bool initiallyVisible() const override
Definition: createObjectPalette.h:193
const QString & paletteItem() const
Definition: createObjectPalette.h:383
DtTagSelectorWidget * myTags
Definition: createObjectPalette.h:350
DtCreateObjectPaletteTreeWidget * myObjects
Definition: createObjectPalette.h:352
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:76
bool favorite() const
Definition: createObjectPalette.h:391
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:131
bool myFavorite
Definition: createObjectPalette.h:416
QString myPaletteItem
Definition: createObjectPalette.h:413
DtEntityMapperKey myEntityMapperKey
Definition: createObjectPalette.h:414
virtual bool hideTitle() const
Definition: createObjectPalette.h:128
Widget that allows the selection of a country.
Definition: countrySelectionEntryWidget.h:39
Definition: createObjectPaletteFilters.h:22
QString myTitle
Definition: createObjectPalette.h:533
makVrv::DtDe & myDe
Definition: createObjectPalette.h:469
makVrv::DtDe & myDe
Definition: createObjectPalette.h:551
!!!!!!!!!! DtCreateObjectPaletteTreeWidget
Definition: createObjectPalette.h:424
Abstract interface for the object creation palette.
Definition: createObjectPaletteInterface.h:29
bool myShowObjectCount
Definition: createObjectPalette.h:532
QSplitter * mySplitter
Definition: createObjectPalette.h:360
QLabel * myGuiLabel
Definition: createObjectPalette.h:363

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)