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 
154  virtual void setShowCountsOnObjectList(bool);
156  {
157  return myShowCountsOnObjectList;
158  }
159 
160  protected:
162  void setupUi(QWidget* p, bool favoritesSupported);
163  void createObjectCreationInformation();
164 
165  virtual void closeEvent(QCloseEvent*);
166  virtual void showEvent(QShowEvent*);
167 
168  virtual void aboutToShow() override;
169 
170  public:
172  virtual void clear();
173 
175  virtual void update();
176 
178  virtual QString currentForce() const;
179 
181  virtual int currentForceType() const;
182 
184  virtual int forceTypeAtIndex(int) const;
185 
187  virtual std::vector<std::string> currentCategories() const;
188 
190  virtual std::string currentDeployedCountry() const;
191 
192  virtual bool initiallyVisible() const override
193  {
194  return true;
195  }
196 
198  virtual void initializeCountries();
199 
201  virtual void selectDeployedCountry(const std::string&);
202 
204  virtual void selectDeployedCountry(int);
205 
207  virtual int numForces() const;
208 
210  virtual int numCategories() const;
211 
213  virtual void addForce(const QString&, int, const QColor&, const std::string& countryCode, bool forceLayout = false);
214 
216  virtual QString force(int) const;
217 
219  virtual bool hasForce(int) const;
220 
222  virtual void setCategories(const DtTagSelectorWidget::Categories&);
223 
225  virtual bool hasCategory(const QString&) const;
226 
228  virtual void selectForce(const QString&);
229 
231  virtual void showForce(bool);
232 
234  virtual void enableForce(bool);
235 
237  virtual void selectForce(int);
238 
240  virtual bool isStickyCategory(const std::string&) const;
241 
243  virtual void setStickyCategories(const std::vector<std::string>&);
244 
246  virtual void selectTopLevelCategory(const std::string& s);
247 
249  virtual DtString topLevelCategory(int) const;
250 
251  virtual QTreeWidgetItem* itemFor(const DtCreateObjectPaletteItem& paletteItem, int force) const;
252 
254  virtual const std::vector<std::string>& stickyCategories() const;
255 
257  virtual void selectCategories(const std::vector<std::string>&);
258 
260  virtual void clearCreateList();
261 
263  virtual void sortItems();
264 
266  virtual void sizeColumns();
267 
271  virtual void addItem(const DtCreateObjectPaletteItem&, int force);
272 
275  virtual void addPaletteItem(const DtCreateObjectPaletteItem&);
276 
278  virtual void removePaletteItem(const DtEntityMapperKey& key, bool matchPattern = false);
279 
281  virtual void setEnabled(bool);
282 
284  void createFavoriteIcon();
285 
286  virtual void clearForces();
287  virtual void clearDeployedCountries();
288  virtual void clearCategories();
289 
291  virtual void initialize();
292 
295  virtual void addLocalPaletteFilter(const DtPaletteFilter&);
296  virtual void removeLocalPaletteFilter(const DtPaletteFilter&);
297 
298  virtual QMenu* createRightClickMenu(DtCreateObjectPaletteTreeWidgetItem*);
299 
300  virtual void slot_onTagsChanged(const std::vector<std::string>&);
301 
302  virtual void setCategoriesFromCounts(const std::map<std::string, int>&, const std::set<std::string>&, int totalItems,
303  const std::vector<std::string>& categoriesToResetTo = std::vector<std::string>());
304 
305  virtual void resetVisuals();
306 
307  virtual void loadCustomTags();
308  virtual void fillInObjectCreationInformation(DtCreateObjectPaletteTreeWidgetItem*);
309 
310  virtual void slot_setTagFromObjectInformation(std::vector<std::string> tag);
311  virtual QTreeWidgetItem* topLevelItemFor(const std::string&);
312 
313  virtual void resetCategoriesBasedOnVisibleItems();
314  virtual void resetParentVisibility();
315 
316  protected slots:
317  virtual void showInformationForItem(const QModelIndex&);
318  virtual void onItemSelectionChanged();
319  virtual void slot_onForceChanged();
320  virtual void slot_onDeployedCountryChanged();
321  virtual void slot_onItemPressed(QTreeWidgetItem*, QMouseEvent*, int);
322  virtual void slot_onItemRightClickedOn(QTreeWidgetItem*, QMouseEvent*, int);
323  virtual void filterItems();
324  virtual void resetFilter();
325  virtual void addToFavoritesRightClick();
326  virtual void removeFromFavoritesRightClick();
327 
328  protected:
332  std::map<std::string, QTreeWidgetItem*> myItems;
333  std::map<std::string, QTreeWidgetItem*> myTopLevelItems;
337 
339  bool myKeepSameInformation = false;
340 
343  bool myShowCountsOnObjectList = false;
344 
345  public:
346  QVBoxLayout* myMainLayout;
348  QGridLayout* myGridLayout;
352  QImage myFavoriteOn;
355 
358 
359  QSplitter* mySplitter;
366  };
367 
370 
373  {
374  public:
375  DtCreateObjectPaletteTreeWidgetItem(makVrv::DtDe& de, const QImage* on = 0);
376 
378 
379  virtual void setFavoritesSupported(bool b);
380 
381  virtual void setPaletteItem(const QString& i);
382  const QString& paletteItem() const
383  {
384  return myPaletteItem;
385  }
386 
387  virtual void resetPixmap();
388 
389  virtual void setFavorite(bool b);
390  bool favorite() const
391  {
392  return myFavorite;
393  }
394 
395  virtual void setEntityMapperKey(const DtEntityMapperKey& k);
397  {
398  return myEntityMapperKey;
399  }
400 
401  DtEntityType entityType() const
402  {
403  return myEntityMapperKey;
404  }
405 
406  virtual QVariant data(int iColumn, int iRole) const override;
407 
408  protected:
409  virtual void updatePixmap();
410 
411  protected:
412  QString myPaletteItem;
416  const QImage* myFavoriteOn;
417  QPixmap* myPixmapEnabled;
420  };
421 
424  {
425  Q_OBJECT
426 
427  public:
430 
431  virtual QSize sizeHint() const;
432 
433  bool favoritesSupported() const
434  {
435  return myFavoritesSupported;
436  }
437 
438  virtual void setFavoritesSupported(bool b);
439  virtual bool viewportEvent(QEvent *event) override;
440 
441  signals:
442  void showInformationForItem(const QModelIndex&);
443 
444  protected:
445  virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> list) const;
446 
447  protected:
449  QModelIndex myLastHoverIndex;
450  };
451 
454  {
455  public:
458 
461 
463  static void registerInstance(makVrv::DtDe& de, DtCreateObjectPaletteTreeWidgetCreator* instance);
464 
465  virtual DtCreateObjectPaletteTreeWidget* create(QWidget* parent);
466 
467  protected:
469  };
470 
473  {
474  public:
477 
480 
481  virtual DtCreateObjectPaletteTreeWidgetItem* create(const QImage* on = 0);
482 
484  static void registerInstance(makVrv::DtDe& de, DtCreateObjectPaletteTreeWidgetItemCreator*);
485 
486  protected:
488  };
489 
492  {
493  Q_OBJECT
494  public:
495  //CTOR
497 
498  //DTOR
499  virtual ~DtLoadObjectTagsMenuItem();
500 
502  virtual QAction* createAction(makVrv::DtDe&, QWidget* parent);
503 
504  protected:
505 
506  virtual void on_triggered();
507 
508  protected:
510  };
511 
513  {
514  public:
516 
517  virtual QVariant data(int col, int role) const override;
518 
519  virtual void setTitle(const QString&);
520  virtual void setObjectCount(int i);
521  virtual void setShowObjectCount(bool b);
522  bool showObjectCount() const
523  {
524  return myShowObjectCount;
525  }
526 
527  virtual bool operator<(const QTreeWidgetItem&) const override;
528 
529  protected:
532  QString myTitle;
533  };
534 
536  {
537  public:
540 
543 
544  virtual DtCreatePaletteTopLevelTreeWidgetItem* create();
545 
547  static void registerInstance(makVrv::DtDe& de, DtCreatePaletteTopLevelTreeWidgetItemCreator*);
548 
549  protected:
551  };
552 }
virtual void deactivate()
Called when the page is hidden.
Definition: createObjectPalette.h:101
bool showObjectCount() const
Definition: createObjectPalette.h:522
Definition: treeWidget.h:35
Contains makVrv::DtUserInterfaceAssembler class.
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:61
QMenu * myRightClickMenu
Definition: createObjectPalette.h:342
!!!!!!!!!!!! DtCreateObkectPaletteTreeWidgetCreator
Definition: createObjectPalette.h:453
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
bool myCloseEventSent
Definition: createObjectPalette.h:336
QAbstractButton * myCurrentTopLevelButtonSelected
Definition: createObjectPalette.h:357
bool myFavoritesSupported
Definition: createObjectPalette.h:419
DtForceSelectionEntryWidget * myForces
Definition: createObjectPalette.h:350
Contains makVrv::DtPage class.
QImage myFavoriteOn
Definition: createObjectPalette.h:352
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:396
int myObjectCount
Definition: createObjectPalette.h:530
Definition: createObjectPaletteLogic.h:45
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DtSearchWidget * mySearchWidget
Definition: createObjectPalette.h:353
QGridLayout * myGridLayout
Definition: createObjectPalette.h:348
bool favoritesSupported() const
Definition: createObjectPalette.h:433
makVrv::DtPageCreatorTemplate< DtCreateObjectPalette > DtCreateObjectPalettePageCreator
Definition: createObjectPalette.h:369
std::map< std::string, QTreeWidgetItem * > myItems
Definition: createObjectPalette.h:332
QVBoxLayout * myObjectInformationLayout
Definition: createObjectPalette.h:361
QLabel * myObjectCreationPicture
Definition: createObjectPalette.h:363
DtCountrySelectionEntryWidget * myUsedByCountry
Definition: createObjectPalette.h:354
Definition: createObjectPalette.h:535
QWidget * myObjectCreationInformation
Definition: createObjectPalette.h:360
bool myFavoritesSupported
Definition: createObjectPalette.h:448
const QImage * myFavoriteOn
Definition: createObjectPalette.h:416
virtual void activate()
Called when the page is displayed.
Definition: createObjectPalette.h:100
Registered creator for the tree widget item class.
Definition: createObjectPalette.h:472
QPixmap * myPixmapDisabled
Definition: createObjectPalette.h:418
bool myFavoritesSupported
Definition: createObjectPalette.h:334
Definition: DtPage.h:150
QPixmap * myPixmapEnabled
Definition: createObjectPalette.h:417
QLabel * myObjectCreationDescription
Definition: createObjectPalette.h:364
Reinitialize scenario.
Definition: createObjectPalette.h:491
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:330
virtual bool hasDeployedCountries() const
Returns true if supports deployed countries.
Definition: createObjectPalette.h:152
makVrv::DtDe & myDe
Definition: createObjectPalette.h:487
std::map< std::string, QTreeWidgetItem * > myTopLevelItems
Definition: createObjectPalette.h:333
Contains makVrv::DtVirtualBaseClass class.
QModelIndex myLastHoverIndex
Definition: createObjectPalette.h:449
bool myInCreationProcess
Definition: createObjectPalette.h:338
DtEntityType entityType() const
Definition: createObjectPalette.h:401
QVBoxLayout * myMainLayout
Definition: createObjectPalette.h:346
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
makVrv::DtDe & myDe
Definition: createObjectPalette.h:414
DtTagSelectorWidget * myObjectTags
Definition: createObjectPalette.h:365
bool myInitialized
Definition: createObjectPalette.h:329
Definition: createObjectPalette.h:512
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:347
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:356
makVrv::DtDe & myDe
Definition: createObjectPalette.h:509
bool showCountsOnObjectList() const
Definition: createObjectPalette.h:155
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:331
Base class to provide boost signal/slot management.
!!!!!!!!!!!!!!!!!!!!! DtCreateObjectPaletteTreeWidgetItem
Definition: createObjectPalette.h:372
Definition: searchWidget.h:22
bool myHasDeployedCountries
Definition: createObjectPalette.h:335
bool myShowFavoritesIcon
Definition: createObjectPalette.h:341
virtual bool initiallyVisible() const override
Definition: createObjectPalette.h:192
const QString & paletteItem() const
Definition: createObjectPalette.h:382
DtTagSelectorWidget * myTags
Definition: createObjectPalette.h:349
DtCreateObjectPaletteTreeWidget * myObjects
Definition: createObjectPalette.h:351
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:72
bool favorite() const
Definition: createObjectPalette.h:390
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:131
bool myFavorite
Definition: createObjectPalette.h:415
QString myPaletteItem
Definition: createObjectPalette.h:412
DtEntityMapperKey myEntityMapperKey
Definition: createObjectPalette.h:413
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:532
makVrv::DtDe & myDe
Definition: createObjectPalette.h:468
makVrv::DtDe & myDe
Definition: createObjectPalette.h:550
!!!!!!!!!! DtCreateObjectPaletteTreeWidget
Definition: createObjectPalette.h:423
Abstract interface for the object creation palette.
Definition: createObjectPaletteInterface.h:29
bool myShowObjectCount
Definition: createObjectPalette.h:531
QSplitter * mySplitter
Definition: createObjectPalette.h:359
QLabel * myGuiLabel
Definition: createObjectPalette.h:362

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)