VR-Forces 5.0.2 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)
16 #include <vrvCore/DtStateView.h>
18 #endif
19 #include <boost/signals2.hpp>
20 
21 #include <QtWidgets/QStyledItemDelegate>
22 
23 class QToolButton;
24 
25 namespace makVrv
26 {
27  class DtVirtualBaseClass;
28  class DtDe;
29 }
30 
31 namespace makVrf
32 {
38  {
39  Q_OBJECT
40 
41  public:
42  static const int UniqueID = Qt::UserRole;
43  static const int TranslatedName = Qt::UserRole + 1;
44  static const int OverlayLocked = Qt::UserRole + 2;
45  static const int OriginalName = Qt::UserRole + 3;
46  static const int Position = Qt::UserRole + 4;
47 
50 
53 
55  virtual void addOverlay(const std::string& name);
56 
58  virtual void lockOverlay(const std::string& name, bool lock);
59 
61  virtual void removeOverlay( const std::string& ovrName );
62 
64  virtual void setOverlaySelected( const std::string& name, bool flag );
65 
66  virtual void activate();
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);
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);
97 
98  virtual void addTacticalGraphic( const makVrv::DtUniqueID& id, const std::string& name, const std::string& ovrName );
99  virtual void renameTacticalGraphic(const makVrv::DtUniqueID& id, const std::string& newName);
100  virtual QTreeWidgetItem* findOverlayParentItem( const std::string& name);
101  virtual QTreeWidgetItem* findItem(const makVrv::DtUniqueID& id);
102  virtual QTreeWidgetItem* findItem(const makVrv::DtUniqueID& id, const std::string& name) const;
103  virtual void moveTacticalGraphic( const makVrv::DtUniqueID& id, const std::string& toLayer );
104  virtual void clearOverlays();
105  virtual bool isOverlaySelected(const std::string& name) const;
106  virtual void setTacticalGraphicChecked(makVrv::DtUniqueID, bool);
107 
108  virtual void setOverlayFlagsForItem(QTreeWidgetItem*);
109  virtual void setAllowNameChange(bool);
110  virtual void setEditPressTime(double);
111 
113  virtual void setIconSize(const QSize&);
114 
115  virtual void removeFromNamedOverlay(makVrv::DtUniqueID);
116  virtual void removeTacticalGraphic(const makVrv::DtUniqueID&, bool removeFromOrganizedLayer);
117 
118  boost::signals2::signal<void ()> signal_addOverlay;
119  boost::signals2::signal<void (const makVrv::DtUniqueID& id, const std::string& )> signal_itemMovedToOverlay;
120  boost::signals2::signal<void (const std::string&, const std::string& )> signal_renameOverlay;
121  boost::signals2::signal<void (const std::string&)> signal_removeOverlay;
122  boost::signals2::signal<void (const std::string&, bool flag)> signal_lockOverlay;
123  boost::signals2::signal<void (const std::string&)> signal_saveOverlayAsShapeFiles;
124  boost::signals2::signal<void (const std::string&)> signal_importShapeFileAsOverlay;
125  boost::signals2::signal<void (const makVrv::DtSelectionManager::IdSet&)> signal_selectItems;
126 
127  protected slots:
128 
129  virtual void onMarkingTextChanged(QTreeWidgetItem*, const QString&);
130 
132  void slot_addOverlayButtonClicked();
133 
135  void slot_removeOverlayButtonClicked();
136 
138  void slot_editOverlayButtonClicked();
139 
141  void slot_lockOverlayButtonClicked();
142 
144  void slot_saveOverlayAsShapeFilesButtonClicked();
145 
147  void slot_importShapeFileAsOverlayButtonClicked();
148 
150  void slot_itemClicked(QTreeWidgetItem* item, int column );
151 
153  void slot_itemDoubleClicked(QTreeWidgetItem* item, int column );
154 
156  void slot_currentItemChanged( QTreeWidgetItem * current, QTreeWidgetItem * previous );
157 
159  void slot_itemChanged ( QTreeWidgetItem * item, int column );
160 
162  void slot_itemMoved(const QStringList& children, std::string overlay);
163 
165  void slot_hideOverlaysStateChanged( int state );
166 
167  virtual void slot_defaultOverlayHiddenButtonClicked();
168 
169  protected:
171  virtual void updateUI(QTreeWidgetItem* current);
172  virtual void changeVisibleBasedOnExternalFilterStatus(makVrv::DtUniqueID);
173  virtual void slot_onStateAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
174  virtual void externalFiltersChanged();
175  virtual void scenarioEventUpdated(const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*);
176  virtual void processItemSelectionChanged();
177  virtual void slot_overlayFlagsChanged(const std::string&, int);
178  virtual void slot_overlayHidden(const std::string&, bool);
179  virtual bool overlayVisible(const std::string& name);
180  virtual int positionOfItem(const std::string&) const;
181  virtual void processItemClicked( QTreeWidgetItem* item, int column );
182  virtual void slot_defaultHiddenChanged(const std::string& layer, bool);
183  virtual void updateIconForItem(QTreeWidgetItem*);
184 
185  public:
195 
196  protected:
201  QSize myIconSize;
202 
203  typedef std::map<std::string, QTreeWidgetItem*> TreeListByName;
205 
208  {
209  PendingOverlayData() : visible(true), locked(false) {};
210  PendingOverlayData(const PendingOverlayData& orig) : visible(orig.visible), locked(orig.locked) {};
211 
212  int visible;
213  bool locked;
214  };
215 
216  typedef std::map<std::string, PendingOverlayData> PendingOverlays;
218 
219  typedef std::map<makVrv::DtUniqueID, std::vector<QTreeWidgetItem*> > ParentedChildren;
221  };
222 
225  {
226  Q_OBJECT
227 
228  public:
231 
232  virtual QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option,
233  const QModelIndex &index) const;
234 
235  protected slots:
236  virtual void editingFinished();
237 
238  signals:
239  void markingTextChanged(QTreeWidgetItem*, const QString&);
240 
241  protected:
244  mutable bool myNameChanged;
245  };
246 }
247 
ParentedChildren myParentedChildren
Definition: vrfTacticalGraphicOverlayTreeWidget.h:220
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
boost::signals2::signal< void(const makVrv::DtUniqueID &id, const std::string &)> signal_itemMovedToOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:119
Contains makVrv:DtSelectionManager class.
boost::signals2::signal< void(const std::string &)> signal_importShapeFileAsOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:124
Contains makVrv::DtStateView class.
boost::signals2::signal< void()> signal_addOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:118
QTreeWidgetItem * myCurrentOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:194
The tactical graphics overlay tree widget displays the tree representing the Tactical Graphic Overlay...
Definition: DtTacticalGraphicOverlayTreeWidget.h:26
QToolButton * myImportShapeFileAsOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:192
bool myNeedsInitialization
Definition: vrfTacticalGraphicOverlayTreeWidget.h:199
bool locked
Definition: vrfTacticalGraphicOverlayTreeWidget.h:213
std::map< std::string, QTreeWidgetItem * > TreeListByName
Definition: vrfTacticalGraphicOverlayTreeWidget.h:203
boost::signals2::signal< void(const std::string &, bool flag)> signal_lockOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:122
boost::signals2::signal< void(const std::string &)> signal_saveOverlayAsShapeFiles
Definition: vrfTacticalGraphicOverlayTreeWidget.h:123
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &)> signal_selectItems
Definition: vrfTacticalGraphicOverlayTreeWidget.h:125
PendingOverlays myPendingOverlays
Definition: vrfTacticalGraphicOverlayTreeWidget.h:217
std::map< makVrv::DtUniqueID, std::vector< QTreeWidgetItem * > > ParentedChildren
Definition: vrfTacticalGraphicOverlayTreeWidget.h:219
QSize myIconSize
Definition: vrfTacticalGraphicOverlayTreeWidget.h:201
QToolButton * myAddOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:187
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QTreeWidgetItem * myLastSelectedItem
Definition: vrfTacticalGraphicOverlayTreeWidget.h:193
The tactical graphics overlay tree widget displays the tree representing the Tactical Graphic Overlay...
Definition: vrfTacticalGraphicOverlayTreeWidget.h:37
PendingOverlayData()
Definition: vrfTacticalGraphicOverlayTreeWidget.h:209
bool myUpdatingVisibility
Definition: vrfTacticalGraphicOverlayTreeWidget.h:197
bool myWasCleared
Definition: vrfTacticalGraphicOverlayTreeWidget.h:206
std::string mySelectNextAddedOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:200
makVrv::DtDe & myDe
Definition: vrfTacticalGraphicOverlayTreeWidget.h:242
Delegate that will signal marking text change when item is edited.
Definition: vrfTacticalGraphicOverlayTreeWidget.h:224
bool myNameChanged
Definition: vrfTacticalGraphicOverlayTreeWidget.h:244
QToolButton * myDeleteOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:186
Base class to provide boost signal/slot management.
std::map< std::string, PendingOverlayData > PendingOverlays
Definition: vrfTacticalGraphicOverlayTreeWidget.h:216
TreeListByName myOverlayRootsTreeListByName
Definition: vrfTacticalGraphicOverlayTreeWidget.h:204
QToolButton * myDefaultHiddenButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:190
QToolButton * myLockOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:189
boost::signals2::signal< void(const std::string &)> signal_removeOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:121
QToolButton * mySaveOverlayAsShapeFilesButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:191
Definition: vrfTacticalGraphicOverlayTreeWidget.h:207
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::DtSignalConnectionManager myConnectionManager
Definition: vrfTacticalGraphicOverlayTreeWidget.h:198
boost::signals2::signal< void(const std::string &, const std::string &)> signal_renameOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:120
QToolButton * myEditOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:188
QTreeWidgetItem * myCurrentlyEditing
Definition: vrfTacticalGraphicOverlayTreeWidget.h:243

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)