VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfHierarchyPage.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #if !defined(Q_MOC_RUN)
14 
19 #include <vrvCoreQt/DtPage.h>
22 #endif
23 
24 #include <QtGui/QPixmap>
25 #include <QtWidgets/QStyledItemDelegate>
26 #include <QtWidgets/QPushButton>
27 
28 #include <boost/signals2.hpp>
29 
30 class QVBoxLayout;
31 class DtTreeWidget;
32 class QCheckBox;
33 class QFrame;
34 class QToolButton;
35 class QLineEdit;
36 class QPushButton;
37 class QHBoxLayout;
38 class QLabel;
39 class QMenu;
40 class QAction;
41 
42 namespace makVrf
43 {
44  class DtVrfHierarchyPageLogic;
45  class DtVrfTreeWidget;
46  class DtMarkingTextSignalItemDelegate;
47  class DtParentedUnderOrganizedNode;
48  class DtSearchWidget;
49  class DtVrfGuiSimObjectManager;
50 
51  class DT_DLL_VRFGUICOREQT DtScrollButtonArea : public QWidget
52  {
53  public:
54  DtScrollButtonArea(QWidget* parent);
55 
56  virtual void scrollContentsBy(int x);
57 
58  QWidget* widget() { return myCanvas; };
59 
60  boost::signals2::signal<void (const QStringList&)> signal_deparent;
61 
62  protected:
63  virtual void paintEvent(QPaintEvent* e) override;
64  virtual void resizeEvent(QResizeEvent* e) override;
65  virtual void dragEnterEvent(QDragEnterEvent* event) override;
66  virtual void dropEvent(QDropEvent* e) override;
67 
68  protected:
69  QWidget* myCanvas;
70  };
71 
72 
76  {
77  Q_OBJECT
78 
79  public:
80 
81  DtExpandCollapseButton(QWidget *parent = NULL);
82  virtual ~DtExpandCollapseButton() override;
83 
84  virtual void setExpandPixmap(QPixmap pix);
85  virtual void setCollapsePixmap(QPixmap pix);
86  virtual void setLevel(int level);
87  virtual int level() const;
88  virtual void setIsExpand(bool value);
89  virtual bool isExpand() const;
90 
91  signals:
92 
93  void expandLevelClicked(unsigned int);
94  void collapseLevelClicked(unsigned int);
95 
96  protected slots:
97 
98  virtual void buttonClicked();
99 
100  protected:
101 
102  virtual void paintEvent(QPaintEvent*) override;
103 
104  protected:
105  QPixmap myExpandPixmap;
108  int myLevel;
109  };
110 
112  {
113  Q_OBJECT
114 
115  public:
117  virtual ~DtVrfHierarchyPage() override;
118 
119  DtVrfTreeWidget* echelon();
120 
123  virtual void selectObjects(const std::vector<DtSimObjectReference>);
124 
126  virtual std::vector<DtSimObjectReference> selectedObjects() const;
127 
128  virtual DtExpandCollapseButton* createExpandCollapseButton(unsigned int, int numButtons);
129 
130  virtual int initialSortColumn() const;
131 
132  virtual void changeForceOf(const QStringList& ids, int);
133 
134  virtual void setAllowNameChange(bool);
135  virtual void setEditPressTime(double);
136 
137  virtual void setRootNodeDefaultHidden(QTreeWidgetItem*, bool);
138  virtual bool isRootNodeDefaultHidden(QTreeWidgetItem*);
139 
141  virtual void setDoubleClickAttachesAndCenters(bool b);
142  bool doubleClickAttachesAndCenters() const;
143 
144  boost::signals2::signal<void (QTreeWidgetItem*)> signal_itemDoubleClicked;
145 
146  public slots:
148  virtual void onItemSelected();
149 
150  protected slots:
151  virtual void onMarkingTextChanged(DtObjectListViewItem*, const QString&);
153  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col);
154 
155  virtual void onScrollRangeChanged(int);
156  virtual void onViewItemExpanded(QTreeWidgetItem*);
157  virtual void onViewItemCollapsed(QTreeWidgetItem*);
158  virtual void onExpandToLevel(unsigned int);
159  virtual void onCollapseToLevel(unsigned int);
160 
161  virtual void itemDoubleClicked(QTreeWidgetItem*);
162 
163  virtual void executeTextFilter();
164  virtual void onItemClicked(QTreeWidgetItem*, int);
165 
166  protected:
167 
169  DtVrfHierarchyPage( makVrv::DtDe& de, QWidget* parent = 0, Qt::WindowFlags flags = 0);
170 
171  virtual DtVrfTreeWidget* createHierarchyList() = 0;
172  virtual DtVrfHierarchyPageLogic* createLogic() = 0;
173 
174  virtual void setupUi(QWidget* p);
175  virtual DtScrollButtonArea* createCollapseButtonConainer(QWidget* parent);
176 
177  virtual DtMarkingTextSignalItemDelegate* createTreeItemDelegate();
178 
179  virtual void slot_onDeParent(const QStringList&);
180  virtual void slot_onReParent(const QStringList& children, makVrv::DtUniqueID parentId);
181 
182  virtual void createSearchBar();
183  virtual void showSearchBars(bool);
184 
186  virtual void activate() override;
187 
189  virtual void deactivate() override;
190  virtual void setChildrenVisible(QTreeWidgetItem* item, bool visible);
191 
192  protected:
195 
196  typedef std::map<QTreeWidgetItem*, DtParentedUnderOrganizedNode*> VisibilityFilters;
198 
199  std::set<QTreeWidgetItem*> myDefaultHiddenRootNodes;
200 
204  bool myIgnoreNextItemClick = false;
205 
206  public:
207  QVBoxLayout* myMasterLayout;
210  QPixmap myPlusPixmap;
211  QPixmap myMinusPixmap;
214 
216  };
217 
220  {
221  Q_OBJECT
222 
223  public:
225  virtual ~DtDragDropBoxItemDelegate() override;
226 
227  virtual void paint(
228  QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
229 
230  protected:
232  };
233 
236  {
237  public:
239  virtual ~DtDragDropBoxItemDelegateCreator() override;
240 
243 
245  static void registerInstance(makVrv::DtDe& de, DtDragDropBoxItemDelegateCreator* instance);
246 
247  virtual DtDragDropBoxItemDelegate* create(QWidget* parent);
248 
249  protected:
251  };
252 
254  {
255  public:
258 
259  virtual DtVrfSelectionFilter* clone() const override;
260 
263  virtual bool isValid(const DtSimObjectReference&) const override;
264  virtual bool operator==(const DtVrfSelectionFilter&) const override;
265  virtual bool showAsPossibleFilter() const override { return false; };
266 
267  virtual void setShouldBeVisible(bool);
268  bool shouldBeVisible() const
269  {
270  return myShouldBeVisible;
271  }
272 
273  virtual void setRootNode(QTreeWidgetItem*);
275  {
276  return myRootNode;
277  }
278 
279  virtual void setHierarchyPageLogic(DtVrfHierarchyPageLogic*);
281  {
282  return myPageParentLogic;
283  }
284 
285  virtual void setStateViewCollectionManager(DtVrfGuiSimObjectManager*);
287  {
288  return myStateViewCollectionManager;
289  }
290 
291  virtual void setForce(int) override {};
292 
293  protected:
294  bool myShouldBeVisible;
298  };
299 }
DtVrfGuiSimObjectManager * stateViewCollectionManager() const
Definition: vrfHierarchyPage.h:286
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:28
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< QTreeWidgetItem *, DtParentedUnderOrganizedNode * > VisibilityFilters
Definition: vrfHierarchyPage.h:196
QPixmap myPlusPixmap
Definition: vrfHierarchyPage.h:210
Contains makVrv::DtPage class declaration.
Show drag over box and create editor for max length given entity type.
Definition: vrfHierarchyPage.h:219
Definition: vrfHierarchyPage.h:253
QTreeWidgetItem * myRootNode
Definition: vrfHierarchyPage.h:295
QPixmap myMinusPixmap
Definition: vrfHierarchyPage.h:211
QPixmap myCollapsePixmap
Definition: vrfHierarchyPage.h:106
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
DT_DLL_VRFGUICORE bool operator==(const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &lhs, const std::vector< makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord > &rhs)
Definition: vrfHierarchyPageLogic.h:64
DtVrfGuiSimObjectManager * myStateViewCollectionManager
Definition: vrfHierarchyPage.h:297
QWidget * widget()
Definition: vrfHierarchyPage.h:58
boost::signals2::signal< void(QTreeWidgetItem *)> signal_itemDoubleClicked
Definition: vrfHierarchyPage.h:144
DtVrfHierarchyPageLogic * myPageParentLogic
Definition: vrfHierarchyPage.h:296
!!!!!!!!!!!!!!! DtDragDropBoxItemDelegateCreator
Definition: vrfHierarchyPage.h:235
DtVrfTreeWidget * myEchelon
Definition: vrfHierarchyPage.h:208
VisibilityFilters myVisibilityFilters
Definition: vrfHierarchyPage.h:197
DtScrollButtonArea * myCollapseButtonWidget
Definition: vrfHierarchyPage.h:209
QTreeWidgetItem * rootNode() const
Definition: vrfHierarchyPage.h:274
DtVrfTreeWidget * myTreeWidget
Definition: vrfHierarchyPage.h:231
int myLevel
Definition: vrfHierarchyPage.h:108
QWidget * myCanvas
Definition: vrfHierarchyPage.h:69
QList< QTreeWidgetItem * > myLastSelectedItems
Definition: vrfHierarchyPage.h:203
Definition: vrfTreeWidget.h:26
Definition: vrfHierarchyPage.h:111
Small wrapper class for QToolButton to create the Expand/Collapse buttons.
Definition: vrfHierarchyPage.h:75
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
QFrame * myDividingLine
Definition: vrfHierarchyPage.h:213
DtVrfHierarchyPageLogic * myLogic
Definition: vrfHierarchyPage.h:193
QPixmap myExpandPixmap
Definition: vrfHierarchyPage.h:105
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:51
makVrv::DtSignalConnectionManager myConnections
Definition: vrfHierarchyPage.h:194
Delegate that will signal marking text change when item is edited.
Definition: markingTextSignalItemDelegate.h:19
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
virtual void setForce(int) override
Definition: vrfHierarchyPage.h:291
Base class to provide boost signal/slot management.
The DtVrfGuiSimObjectManager class is a wrapper around the DtStateDataManager created in the network ...
Definition: vrfGuiSimObjectManager.h:36
Definition: searchWidget.h:22
QCheckBox * myShowEchelonId
Definition: vrfHierarchyPage.h:212
DtSearchWidget * mySearchWidget
Definition: vrfHierarchyPage.h:215
Definition: vrfHierarchyPage.h:51
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
bool myIsExpand
Definition: vrfHierarchyPage.h:107
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
bool myDoubleClickAttachesAndCenters
Defaults to false.
Definition: vrfHierarchyPage.h:202
std::set< QTreeWidgetItem * > myDefaultHiddenRootNodes
Definition: vrfHierarchyPage.h:199
QVBoxLayout * myMasterLayout
Definition: vrfHierarchyPage.h:207
DtVrfHierarchyPageLogic * hierarchyPageLogic() const
Definition: vrfHierarchyPage.h:280
virtual bool showAsPossibleFilter() const override
Definition: vrfHierarchyPage.h:265
bool shouldBeVisible() const
Definition: vrfHierarchyPage.h:268
makVrv::DtDe & myDe
Definition: vrfHierarchyPage.h:250

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)