VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfTacticalGraphicOverlayTreeWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #if !defined(Q_MOC_RUN)
17 #endif
18 #include <boost/signals2.hpp>
19 
20 #include <QtWidgets/QStyledItemDelegate>
21 
22 class QToolButton;
23 
24 namespace makVrv
25 {
26  class DtVirtualBaseClass;
27  class DtDe;
28 }
29 
30 namespace makVrf
31 {
37  {
38  Q_OBJECT
39 
40  public:
41  static const int UniqueID = Qt::UserRole;
42  static const int TranslatedName = Qt::UserRole + 1;
43  static const int OverlayLocked = Qt::UserRole + 2;
44  static const int OriginalName = Qt::UserRole + 3;
45  static const int Position = Qt::UserRole + 4;
46  static const int OverlayFolder = Qt::UserRole + 5;
47 
50 
52  virtual ~DtVrfTacticalGraphicOverlayTreeWidget() override;
53 
55  virtual void addOverlay(const std::string& name) override;
56 
58  virtual void lockOverlay(const std::string& name, bool lock);
59 
61  virtual void removeOverlay(const std::string& ovrName) override;
62 
64  virtual void setOverlaySelected(const std::string& name, bool flag) override;
65 
66  virtual void activate() override;
67 
69  virtual void enableAddOverlays(bool flag);
71  virtual void enableDeleteOverlays(bool flag);
73  virtual void enableEditOverlays(bool flag);
75  virtual void enableLockOverlays(bool flag);
76 
78  virtual void setCanSaveOverlayAsShapeFile(bool flag);
79 
81  virtual void setCanImportShapeFileOntoOverlay(bool flag);
82 
84  virtual void setOverlayLayerVisible(const std::string& overlay, bool state) override;
85  virtual void setOverlayLayerVisibleByState(const std::string& overlay, int state);
86 
88  virtual void clear();
89 
91  virtual void updateUI();
92 
93  virtual QTreeWidget* treeWidget();
94 
96  virtual void removeTacticalGraphic(const makVrv::DtUniqueID& id) override;
97 
98  virtual void addTacticalGraphic(
99  const makVrv::DtUniqueID& id, const std::string& name, const std::string& ovrName) override;
100  virtual void renameTacticalGraphic(const makVrv::DtUniqueID& id, const std::string& newName) override;
101  virtual QTreeWidgetItem* findOverlayParentItem( const std::string& name);
102  virtual QTreeWidgetItem* findItem(const makVrv::DtUniqueID& id) override;
103  virtual QTreeWidgetItem* findItem(const makVrv::DtUniqueID& id, const std::string& name) const;
104  virtual void moveTacticalGraphic(const makVrv::DtUniqueID& id, const std::string& toLayer) override;
105  virtual void clearOverlays() override;
106  virtual bool isOverlaySelected(const std::string& name) const;
107  virtual void setTacticalGraphicChecked(makVrv::DtUniqueID, bool);
108 
109  virtual void setOverlayFlagsForItem(QTreeWidgetItem*);
110  virtual void setAllowNameChange(bool);
111  virtual void setEditPressTime(double);
112 
114  virtual void setIconSize(const QSize&);
115 
116  virtual void removeFromNamedOverlay(makVrv::DtUniqueID);
117  virtual void removeTacticalGraphic(const makVrv::DtUniqueID&, bool removeFromOrganizedLayer);
118  virtual QTreeWidgetItem* createOrFindOverlayItem(const std::string& name);
119  virtual QTreeWidgetItem* parentItemFor(const std::string& name);
120 
122  {
123  return myOnlySetCheckStateOf;
124  }
125 
126  boost::signals2::signal<void ()> signal_addOverlay;
127  boost::signals2::signal<void (const makVrv::DtUniqueID& id, const std::string& )> signal_itemMovedToOverlay;
128  boost::signals2::signal<void (const std::string&, const std::string& )> signal_renameOverlay;
129  boost::signals2::signal<void (const std::string&)> signal_removeOverlay;
130  boost::signals2::signal<void (const std::string&, bool flag)> signal_lockOverlay;
131  boost::signals2::signal<void (const std::string&)> signal_saveOverlayAsShapeFiles;
132  boost::signals2::signal<void (const std::string&)> signal_importShapeFileAsOverlay;
133  boost::signals2::signal<void (const makVrv::DtSelectionManager::IdSet&)> signal_selectItems;
134 
135  protected slots:
136 
137  virtual void onMarkingTextChanged(QTreeWidgetItem*, const QString&);
138 
140  void slot_addOverlayButtonClicked();
141 
143  void slot_removeOverlayButtonClicked();
144 
146  void slot_editOverlayButtonClicked();
147 
149  void slot_lockOverlayButtonClicked();
150 
152  void slot_saveOverlayAsShapeFilesButtonClicked();
153 
155  void slot_importShapeFileAsOverlayButtonClicked();
156 
158  void slot_itemClicked(QTreeWidgetItem* item, int column );
159 
161  void slot_itemDoubleClicked(QTreeWidgetItem* item, int column );
162 
164  void slot_currentItemChanged( QTreeWidgetItem * current, QTreeWidgetItem * previous );
165 
167  void slot_itemChanged ( QTreeWidgetItem * item, int column );
168 
170  void slot_itemMoved(const QStringList& children, std::string overlay);
171 
173  void slot_hideOverlaysStateChanged( int state );
174 
175  virtual void slot_defaultOverlayHiddenButtonClicked();
176 
177  protected:
179  virtual void updateUI(QTreeWidgetItem* current);
180  virtual void changeVisibleBasedOnExternalFilterStatus(DtSimObjectReference);
181  virtual void slot_onStateAdded(DtSimObjectReference state);
182  virtual void externalFiltersChanged();
183  virtual void scenarioEventUpdated(DtSimObjectReference);
184  virtual void processItemSelectionChanged() override;
185  virtual void slot_overlayFlagsChanged(const std::string&, int);
186  virtual void slot_overlayHidden(const std::string&, bool);
187  virtual bool overlayVisible(const std::string& name);
188  virtual int positionOfItem(const std::string&);
189  virtual void processItemClicked(QTreeWidgetItem* item, int column) override;
190  virtual void slot_defaultHiddenChanged(const std::string& layer, bool);
191  virtual void updateIconForItem(QTreeWidgetItem*);
192 
195  virtual bool isOverlay(QTreeWidgetItem* item) override;
196 
197  public:
207 
208  protected:
214  QSize myIconSize;
215 
216  typedef std::map<std::string, QTreeWidgetItem*> TreeListByName;
218 
221  {
222  PendingOverlayData() : visible(true), locked(false) {};
223  PendingOverlayData(const PendingOverlayData& orig) : visible(orig.visible), locked(orig.locked) {};
224 
225  int visible;
226  bool locked;
227  };
228 
229  typedef std::map<std::string, PendingOverlayData> PendingOverlays;
231 
232  typedef std::map<makVrv::DtUniqueID, std::vector<QTreeWidgetItem*> > ParentedChildren;
234  };
235 
238  {
239  Q_OBJECT
240 
241  public:
243  virtual ~DtOverlayTreeWidgetMarkingTextDelegate() override;
244 
245  virtual QWidget* createEditor(
246  QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
247 
248  protected slots:
249  virtual void editingFinished();
250 
251  signals:
252  void markingTextChanged(QTreeWidgetItem*, const QString&);
253 
254  protected:
257  mutable bool myNameChanged;
258  };
259 }
260 
QTreeWidgetItem * onlySetCheckStateOf() const
Definition: vrfTacticalGraphicOverlayTreeWidget.h:121
ParentedChildren myParentedChildren
Definition: vrfTacticalGraphicOverlayTreeWidget.h:233
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
boost::signals2::signal< void(const makVrv::DtUniqueID &id, const std::string &)> signal_itemMovedToOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:127
Contains makVrv:DtSelectionManager class.
boost::signals2::signal< void(const std::string &)> signal_importShapeFileAsOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:132
boost::signals2::signal< void()> signal_addOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:126
QTreeWidgetItem * myCurrentOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:206
The tactical graphics overlay tree widget displays the tree representing the Tactical Graphic Overlay...
Definition: DtTacticalGraphicOverlayTreeWidget.h:26
QToolButton * myImportShapeFileAsOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:204
bool myNeedsInitialization
Definition: vrfTacticalGraphicOverlayTreeWidget.h:212
bool locked
Definition: vrfTacticalGraphicOverlayTreeWidget.h:226
std::map< std::string, QTreeWidgetItem * > TreeListByName
Definition: vrfTacticalGraphicOverlayTreeWidget.h:216
boost::signals2::signal< void(const std::string &, bool flag)> signal_lockOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:130
boost::signals2::signal< void(const std::string &)> signal_saveOverlayAsShapeFiles
Definition: vrfTacticalGraphicOverlayTreeWidget.h:131
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &)> signal_selectItems
Definition: vrfTacticalGraphicOverlayTreeWidget.h:133
PendingOverlays myPendingOverlays
Definition: vrfTacticalGraphicOverlayTreeWidget.h:230
std::map< makVrv::DtUniqueID, std::vector< QTreeWidgetItem * > > ParentedChildren
Definition: vrfTacticalGraphicOverlayTreeWidget.h:232
QSize myIconSize
Definition: vrfTacticalGraphicOverlayTreeWidget.h:214
QToolButton * myAddOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:199
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QTreeWidgetItem * myLastSelectedItem
Definition: vrfTacticalGraphicOverlayTreeWidget.h:205
The tactical graphics overlay tree widget displays the tree representing the Tactical Graphic Overlay...
Definition: vrfTacticalGraphicOverlayTreeWidget.h:36
PendingOverlayData()
Definition: vrfTacticalGraphicOverlayTreeWidget.h:222
bool myUpdatingVisibility
Definition: vrfTacticalGraphicOverlayTreeWidget.h:210
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool myWasCleared
Definition: vrfTacticalGraphicOverlayTreeWidget.h:219
std::string mySelectNextAddedOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:213
makVrv::DtDe & myDe
Definition: vrfTacticalGraphicOverlayTreeWidget.h:255
Delegate that will signal marking text change when item is edited.
Definition: vrfTacticalGraphicOverlayTreeWidget.h:237
bool myNameChanged
Definition: vrfTacticalGraphicOverlayTreeWidget.h:257
QToolButton * myDeleteOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:198
Base class to provide boost signal/slot management.
std::map< std::string, PendingOverlayData > PendingOverlays
Definition: vrfTacticalGraphicOverlayTreeWidget.h:229
QTreeWidgetItem * myOnlySetCheckStateOf
Definition: vrfTacticalGraphicOverlayTreeWidget.h:209
TreeListByName myOverlayRootsTreeListByName
Definition: vrfTacticalGraphicOverlayTreeWidget.h:217
QToolButton * myDefaultHiddenButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:202
QToolButton * myLockOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:201
boost::signals2::signal< void(const std::string &)> signal_removeOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:129
QToolButton * mySaveOverlayAsShapeFilesButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:203
Definition: vrfTacticalGraphicOverlayTreeWidget.h:220
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
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfTacticalGraphicOverlayTreeWidget.h:211
boost::signals2::signal< void(const std::string &, const std::string &)> signal_renameOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:128
QToolButton * myEditOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:200
QTreeWidgetItem * myCurrentlyEditing
Definition: vrfTacticalGraphicOverlayTreeWidget.h:256

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)