VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfOrbatPage.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
8 #pragma once
9 
10 #if !defined(Q_MOC_RUN)
18 #endif
19 
20 class QPushButton;
21 class QHBoxLayout;
22 class QToolButton;
23 class QLabel;
24 class QLineEdit;
25 class QMenu;
26 class QAction;
27 class QStringList;
28 class DtIfOrbatOperation;
29 class QFrame;
30 
31 namespace makVrf
32 {
33  class DtCreateObjectPalette;
34  class DtAggregateAsDialog;
35  class DtVrfOrbatTreeWidget;
36  class DtPaletteFilter;
37  class DtSelectUnitDialog;
38 
40  {
41  Q_OBJECT
42 
43  public:
44 
46  virtual ~DtVrfOrbatPage() override;
47 
49  virtual QIcon icon() override;
50 
53  virtual makVrv::DtQIconConfigurations qIconConfigurations() const override;
54 
56  virtual QString title() override;
57 
59  virtual const std::string& pageClassName() const override;
60 
62  virtual void setOrbatActivated(bool);
63 
65  virtual void itemPositioned(DtObjectListViewItem* item);
66 
69  virtual void setOrbatCreationMode(bool);
70  bool orbatCreationMode() const;
71 
73  virtual void setSignalObjectToCreate(bool);
74  bool signalObjectToCreate() const;
75 
77  virtual void setShowInOrbatOnly(bool);
78  bool showInOrbatOnly() const;
79 
81  virtual void activate() override;
82 
83  virtual void closeDialogs();
84 
85  virtual void validateButtons();
86 
87  boost::signals2::signal<void (DtEntityMapperKey, std::string, std::string, DtUUID)> signal_createObject;
88 
89  public slots:
90  virtual void onCreateFromOrbat();
91 
92  protected slots:
93  virtual void onAddToOrbat();
94  virtual void onAddUnitToOrbat();
95  virtual void entityPanelDestroyed();
96  virtual void selectUnitDialogDestroyed();
97  virtual void onRemoveFromOrbat();
98  virtual void onEditOrbatEntry();
99  virtual void onEditCancelled();
100  virtual void onEditComplete();
101  virtual void onOrganizeOrbat();
102  virtual void aggregateAsDestroyed();
103  virtual void onMoveUpInOrbatOrder();
104  virtual void onMoveDownInOrbatOrder();
105  virtual void onCopyOrbat();
106  virtual void onPasteOrbat();
107  virtual void onAddOrbatItem();
108 
109  protected:
110  virtual void slot_addUnitFromUnitDialog(const DtEntityMapperKey& key, const QString&);
111  virtual void slot_checkEntityCreateSelection();
112  virtual void moveSelectedBy(int);
113  virtual void onMarkingTextChanged(DtObjectListViewItem*, const QString&) override;
114 
115  virtual void hideEvent(QHideEvent*) override;
116 
117  virtual void cancelCreation();
118 
119  virtual void slot_stoppedObjectCreation();
120  virtual void slot_creatingObject();
121 
122  virtual void slot_itemRemoved(makVrv::DtUniqueID);
123 
124  virtual bool isForceRootNode(DtObjectListViewItem*) const;
125  virtual bool isForceRootNode(makVrv::DtUniqueID) const;
126 
127  virtual int forceForRootNode(DtObjectListViewItem*) const;
128  virtual int forceForRootNode(makVrv::DtUniqueID) const;
129 
130  virtual void paletteItemsAdded();
131 
132  virtual DtVrfHierarchyPageLogic* createLogic() override;
133 
135  virtual void onItemSelected() override;
136 
137  virtual DtVrfTreeWidget* createHierarchyList() override;
138 
139  virtual void slot_createObjectType(const DtEntityMapperKey& x);
140 
142  virtual void slot_reparentOrbatItems(const QStringList& ids, makVrv::DtUniqueID parentID, int newOrbatPosition = -1);
143 
146  virtual void editOrbatEntry(makVrv::DtUniqueID);
147 
149  virtual void setupForEditMode(DtSimObjectReference);
150 
152  virtual void setupForCreateMode();
153 
155  virtual void createEntityPalettePanel();
156 
158  virtual DtSelectUnitDialog* createSelectUnitDialog();
159 
161  virtual void createRightClickMenu();
162 
164  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent* e, int col) override;
165 
167  virtual void addObjectsToOrbatFromPalette(const std::vector<DtEntityMapperKey>&, const DtUUID& onTopOf, const QString& name = "",
168  const QString& label = "", bool createSubordinates = true);
169 
171  virtual void addChildForCopyToVector(DtObjectListViewItem*, QStringList& nodes, std::set<DtUUID>& processed,
172  bool consideredUnparented = false);
173 
174  protected:
175  virtual void createFromTick();
176  virtual void editFromTick();
177  virtual void setupForOrbatCreationMode();
178  virtual void setupForOrbatEditMode();
179  virtual void changeMaximumNameLength(const DtEntityMapperKey&);
180  virtual void addObjectItemsFromOrbatPalette(const QByteArray&, DtObjectListViewItem*);
181  virtual void objectsDroppedFromPalette(const std::vector<DtEntityMapperKey>& keys, const DtUUID& onTopOf);
182  virtual bool eventFilter(QObject* o, QEvent* e) override;
183  virtual void onCreateDone();
184 
185  protected:
187  friend class DtVrfOrbatPageCreator;
188 
190  DtVrfOrbatPage( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0);
191 
192  public:
193  QHBoxLayout* myButtonLayout;
194 
195  QWidget* myButtons;
196 
204 
210 
216  QHBoxLayout* myPaletteButtonLayout;
220 
233 
234  protected:
241 
244 
247  };
248 
251  {
252  public:
253 
256 
258  virtual ~DtVrfOrbatPageCreator() override;
259 
263  virtual std::string pageClassName() const override;
264 
266  virtual makVrv::DtPage* create(QWidget* parent = 0, Qt::WindowFlags f = 0) override;
267  };
268 
271  {
272  Q_OBJECT
273 
274  public:
275  DtOrbatPalettePage( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0);
276 
277  virtual ~DtOrbatPalettePage() override;
278 
280  virtual const std::string& pageClassName() const override;
281 
283  static const std::string& thePageClassName();
284 
286  virtual void clear() override
287  {
288  }
289 
291  virtual void update() override
292  {
293  }
294 
296  virtual void setEnabled(bool) override
297  {
298  }
299 
300  virtual bool initiallyVisible() const override
301  {
302  return false;
303  }
304 
305  virtual void aboutToShow() override
306  {
307  }
308 
309  protected:
310  virtual void activate() override;
311  };
312 
315 }
makVrv::DtPageCreatorTemplate< DtOrbatPalettePage > DtOrbatPalettePageCreator
Definition: vrfOrbatPage.h:314
QWidget * myButtons
Definition: vrfOrbatPage.h:195
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool myInCreationMode
Definition: vrfOrbatPage.h:236
Definition: aggregateAsDialog.h:26
DtCreateObjectPalette * myEntityPalettePanel
Part of entity create palette extension to be able to add items at a particular location and with a p...
Definition: vrfOrbatPage.h:207
QToolButton * myCreateFromOrbat
Definition: vrfOrbatPage.h:203
Definition: ifOrbatOperation.h:20
QAction * myEditOrbatAction
Definition: vrfOrbatPage.h:225
Definition: entityMapperKey.h:19
QToolButton * myRemoveFromOrbat
Definition: vrfOrbatPage.h:200
QAction * myCreateFromOrbatAction
Definition: vrfOrbatPage.h:227
Definition: vrfOrbatPage.h:39
QToolButton * myAddToOrbat
Definition: vrfOrbatPage.h:197
QPushButton * myAddButton
Definition: vrfOrbatPage.h:219
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
virtual void clear() override
Clears contents of widget.
Definition: vrfOrbatPage.h:286
QAction * myMoveDown
Definition: vrfOrbatPage.h:230
bool myCreatingObjectFromOrbat
Definition: vrfOrbatPage.h:235
QAction * myOrganizeAction
Definition: vrfOrbatPage.h:228
Definition: vrfHierarchyPageLogic.h:64
The page creator. This class should be extended by all page classes.
Definition: DtPage.h:152
QFrame * mySeparator
Definition: vrfOrbatPage.h:202
bool myOrbatCreationMode
Definition: vrfOrbatPage.h:242
DtUUID myUUIDBeingAdded
Definition: vrfOrbatPage.h:240
QAction * myAddToOrbatAction
Definition: vrfOrbatPage.h:223
DtEntityMapperKey myObjectSelected
Definition: vrfOrbatPage.h:238
bool myShowInOrbatOnly
Definition: vrfOrbatPage.h:246
QHBoxLayout * myPaletteButtonLayout
Definition: vrfOrbatPage.h:216
bool mySignalObjectToCreate
Definition: vrfOrbatPage.h:245
Contains makVrf::DtVrfEchelonHierarchyPage class.
Definition: DtPage.h:181
QToolButton * myAddUnitToOrbat
Definition: vrfOrbatPage.h:198
QLabel * myLabelLabel
Definition: vrfOrbatPage.h:214
virtual void update() override
Tells widget to update (redraw)
Definition: vrfOrbatPage.h:291
QAction * myMoveUp
Definition: vrfOrbatPage.h:229
Definition: vrfTreeWidget.h:26
virtual bool initiallyVisible() const override
Definition: vrfOrbatPage.h:300
This class will allow the user to select a unit type from a list. The default button is &quot;Add&quot; to sign...
Definition: selectUnitDialog.h:37
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QAction * myRemoveFromOrbatAction
Definition: vrfOrbatPage.h:226
Abstract interface for the creation palettes.
Definition: genericPaletteInterface.h:28
QAction * myCopyAction
Definition: vrfOrbatPage.h:231
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:51
QLabel * myCreateHelpText
Definition: vrfOrbatPage.h:211
bool myOrbatActivated
Definition: vrfOrbatPage.h:237
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Specialized ORBAT page that will put page into creation mode.
Definition: vrfOrbatPage.h:270
QPushButton * myClose
Definition: vrfOrbatPage.h:217
QAction * myPasteAction
Definition: vrfOrbatPage.h:232
QAction * myAddUnitToOrbatAction
Definition: vrfOrbatPage.h:224
QLineEdit * myLabelLineEdit
Definition: vrfOrbatPage.h:215
makVrv::DtUniqueID myEditing
Definition: vrfOrbatPage.h:239
QMenu * myRightClickMenu
Right click menu created when right clicking on orbat only items.
Definition: vrfOrbatPage.h:222
DtAggregateAsDialog * myAggregateAsDialog
Definition: vrfOrbatPage.h:208
A widget class for showing different items of supplied types to the logic tthat can be created...
Definition: createObjectPalette.h:71
Base class to provide boost signal/slot management.
virtual void setEnabled(bool) override
Enables/Disables Gui.
Definition: vrfOrbatPage.h:296
QLabel * myNameLabel
Definition: vrfOrbatPage.h:212
makVrv::DtSignalConnectionManager mySidcConnections
Definition: vrfOrbatPage.h:243
virtual void aboutToShow() override
Called when this palette is about to be shown.
Definition: vrfOrbatPage.h:305
Definition: vrfEchelonHierarchyPage.h:18
QToolButton * myOrganize
Definition: vrfOrbatPage.h:201
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
A collection of icon configurations. The collection maintains flags indicating whether to generate ic...
Definition: DtQIconConfiguration.h:131
The creator class needed to be used to create a DtVrfOrbatPagePage.
Definition: vrfOrbatPage.h:250
QToolButton * myEditOrbatEntry
Definition: vrfOrbatPage.h:199
DtSelectUnitDialog * mySelectUnitDialog
Definition: vrfOrbatPage.h:209
QHBoxLayout * myButtonLayout
Definition: vrfOrbatPage.h:193
This tree widget item can be used in any tree that wants to display an icon next to the name of an ob...
Definition: objectListViewItem.h:45
QLineEdit * myNameLineEdit
Definition: vrfOrbatPage.h:213
boost::signals2::signal< void(DtEntityMapperKey, std::string, std::string, DtUUID)> signal_createObject
Definition: vrfOrbatPage.h:87
QPushButton * myOK
Definition: vrfOrbatPage.h:218

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)