VR-Forces 4.8 Class Documentation
 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  boost::signals2::signal<void ()> signal_addOverlay;
116  boost::signals2::signal<void (const makVrv::DtUniqueID& id, const std::string& )> signal_itemMovedToOverlay;
117  boost::signals2::signal<void (const std::string&, const std::string& )> signal_renameOverlay;
118  boost::signals2::signal<void (const std::string&)> signal_removeOverlay;
119  boost::signals2::signal<void (const std::string&, bool flag)> signal_lockOverlay;
120  boost::signals2::signal<void (const std::string&)> signal_saveOverlayAsShapeFiles;
121  boost::signals2::signal<void (const std::string&)> signal_importShapeFileAsOverlay;
122  boost::signals2::signal<void (const makVrv::DtSelectionManager::IdSet&)> signal_selectItems;
123 
124  protected slots:
125 
126  virtual void onMarkingTextChanged(QTreeWidgetItem*, const QString&);
127 
129  void slot_addOverlayButtonClicked();
130 
132  void slot_removeOverlayButtonClicked();
133 
135  void slot_editOverlayButtonClicked();
136 
138  void slot_lockOverlayButtonClicked();
139 
141  void slot_saveOverlayAsShapeFilesButtonClicked();
142 
144  void slot_importShapeFileAsOverlayButtonClicked();
145 
147  void slot_itemClicked(QTreeWidgetItem* item, int column );
148 
150  void slot_itemDoubleClicked(QTreeWidgetItem* item, int column );
151 
153  void slot_currentItemChanged( QTreeWidgetItem * current, QTreeWidgetItem * previous );
154 
156  void slot_itemChanged ( QTreeWidgetItem * item, int column );
157 
159  void slot_itemMoved(const QStringList& children, std::string overlay);
160 
162  void slot_hideOverlaysStateChanged( int state );
163 
164  virtual void slot_defaultOverlayHiddenButtonClicked();
165 
166  protected:
168  virtual void updateUI(QTreeWidgetItem* current);
169  virtual void changeVisibleBasedOnExternalFilterStatus(makVrv::DtUniqueID);
170  virtual void slot_onStateAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
171  virtual void externalFiltersChanged();
172  virtual void scenarioEventUpdated(const makVrv::DtStateView<DtVrlinkSimulatedEnvironmentProcess>*);
173  virtual void processItemSelectionChanged();
174  virtual void slot_overlayFlagsChanged(const std::string&, int);
175  virtual void slot_overlayHidden(const std::string&, bool);
176  virtual bool overlayVisible(const std::string& name);
177  virtual int positionOfItem(const std::string&) const;
178  virtual void processItemClicked( QTreeWidgetItem* item, int column );
179  virtual void slot_defaultHiddenChanged(const std::string& layer, bool);
180  virtual void updateIconForItem(QTreeWidgetItem*);
181 
182  public:
192 
193  protected:
198  QSize myIconSize;
199 
200  typedef std::map<std::string, QTreeWidgetItem*> TreeListByName;
202 
205  {
206  PendingOverlayData() : visible(true), locked(false) {};
207  PendingOverlayData(const PendingOverlayData& orig) : visible(orig.visible), locked(orig.locked) {};
208 
209  int visible;
210  bool locked;
211  };
212 
213  typedef std::map<std::string, PendingOverlayData> PendingOverlays;
215 
216  typedef std::map<makVrv::DtUniqueID, std::vector<QTreeWidgetItem*> > ParentedChildren;
218  };
219 
222  {
223  Q_OBJECT
224 
225  public:
228 
229  virtual QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option,
230  const QModelIndex &index) const;
231 
232  protected slots:
233  virtual void editingFinished();
234 
235  signals:
236  void markingTextChanged(QTreeWidgetItem*, const QString&);
237 
238  protected:
241  mutable bool myNameChanged;
242  };
243 }
244 
ParentedChildren myParentedChildren
Definition: vrfTacticalGraphicOverlayTreeWidget.h:217
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
boost::signals2::signal< void(const makVrv::DtUniqueID &id, const std::string &)> signal_itemMovedToOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:116
Contains makVrv:DtSelectionManager class.
boost::signals2::signal< void(const std::string &)> signal_importShapeFileAsOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:121
Contains makVrv::DtStateView class.
boost::signals2::signal< void()> signal_addOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:115
QTreeWidgetItem * myCurrentOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:191
The tactical graphics overlay tree widget displays the tree representing the Tactical Graphic Overlay...
Definition: DtTacticalGraphicOverlayTreeWidget.h:29
QToolButton * myImportShapeFileAsOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:189
bool myNeedsInitialization
Definition: vrfTacticalGraphicOverlayTreeWidget.h:196
bool locked
Definition: vrfTacticalGraphicOverlayTreeWidget.h:210
std::map< std::string, QTreeWidgetItem * > TreeListByName
Definition: vrfTacticalGraphicOverlayTreeWidget.h:200
boost::signals2::signal< void(const std::string &, bool flag)> signal_lockOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:119
boost::signals2::signal< void(const std::string &)> signal_saveOverlayAsShapeFiles
Definition: vrfTacticalGraphicOverlayTreeWidget.h:120
boost::signals2::signal< void(const makVrv::DtSelectionManager::IdSet &)> signal_selectItems
Definition: vrfTacticalGraphicOverlayTreeWidget.h:122
PendingOverlays myPendingOverlays
Definition: vrfTacticalGraphicOverlayTreeWidget.h:214
std::map< makVrv::DtUniqueID, std::vector< QTreeWidgetItem * > > ParentedChildren
Definition: vrfTacticalGraphicOverlayTreeWidget.h:216
QSize myIconSize
Definition: vrfTacticalGraphicOverlayTreeWidget.h:198
QToolButton * myAddOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:184
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
QTreeWidgetItem * myLastSelectedItem
Definition: vrfTacticalGraphicOverlayTreeWidget.h:190
The tactical graphics overlay tree widget displays the tree representing the Tactical Graphic Overlay...
Definition: vrfTacticalGraphicOverlayTreeWidget.h:37
PendingOverlayData()
Definition: vrfTacticalGraphicOverlayTreeWidget.h:206
bool myUpdatingVisibility
Definition: vrfTacticalGraphicOverlayTreeWidget.h:194
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool myWasCleared
Definition: vrfTacticalGraphicOverlayTreeWidget.h:203
std::string mySelectNextAddedOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:197
makVrv::DtDe & myDe
Definition: vrfTacticalGraphicOverlayTreeWidget.h:239
Delegate that will signal marking text change when item is edited.
Definition: vrfTacticalGraphicOverlayTreeWidget.h:221
bool myNameChanged
Definition: vrfTacticalGraphicOverlayTreeWidget.h:241
QToolButton * myDeleteOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:183
Base class to provide boost signal/slot management.
std::map< std::string, PendingOverlayData > PendingOverlays
Definition: vrfTacticalGraphicOverlayTreeWidget.h:213
TreeListByName myOverlayRootsTreeListByName
Definition: vrfTacticalGraphicOverlayTreeWidget.h:201
QToolButton * myDefaultHiddenButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:187
QToolButton * myLockOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:186
boost::signals2::signal< void(const std::string &)> signal_removeOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:118
QToolButton * mySaveOverlayAsShapeFilesButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:188
Definition: vrfTacticalGraphicOverlayTreeWidget.h:204
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfTacticalGraphicOverlayTreeWidget.h:195
boost::signals2::signal< void(const std::string &, const std::string &)> signal_renameOverlay
Definition: vrfTacticalGraphicOverlayTreeWidget.h:117
QToolButton * myEditOverlayButton
Definition: vrfTacticalGraphicOverlayTreeWidget.h:185
QTreeWidgetItem * myCurrentlyEditing
Definition: vrfTacticalGraphicOverlayTreeWidget.h:240

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)