VR-Forces 5.0.2 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 DtVrfStateViewCollectionManager;
49 
50  class DT_DLL_VRFGUICOREQT DtScrollButtonArea : public QWidget
51  {
52  public:
53  DtScrollButtonArea(QWidget* parent);
54 
55  virtual void scrollContentsBy(int x);
56 
57  QWidget* widget() { return myCanvas; };
58 
59  boost::signals2::signal<void (const QStringList&)> signal_deparent;
60 
61  protected:
62  virtual void paintEvent(QPaintEvent* e);
63  virtual void resizeEvent(QResizeEvent* e);
64  virtual void dragEnterEvent(QDragEnterEvent *event);
65  virtual void dropEvent(QDropEvent *e);
66 
67  protected:
68  QWidget* myCanvas;
69  };
70 
71 
75  {
76  Q_OBJECT
77 
78  public:
79 
80  DtExpandCollapseButton(QWidget *parent = NULL);
81  virtual ~DtExpandCollapseButton();
82 
83  virtual void setExpandPixmap(QPixmap pix);
84  virtual void setCollapsePixmap(QPixmap pix);
85  virtual void setLevel(int level);
86  virtual int level() const;
87  virtual void setIsExpand(bool value);
88  virtual bool isExpand() const;
89 
90  signals:
91 
92  void expandLevelClicked(unsigned int);
93  void collapseLevelClicked(unsigned int);
94 
95  protected slots:
96 
97  virtual void buttonClicked();
98 
99  protected:
100 
101  virtual void paintEvent(QPaintEvent*);
102 
103  protected:
104  QPixmap myExpandPixmap;
107  int myLevel;
108  };
109 
111  {
112  Q_OBJECT
113 
114  public:
116  virtual ~DtVrfHierarchyPage();
117 
118  DtVrfTreeWidget* echelon();
119 
122  virtual void selectObjects(const std::vector<DtObjectListViewItem::DtVrfObjectState>);
123 
125  virtual std::vector<DtObjectListViewItem::DtVrfObjectState> selectedObjects() const;
126 
127  virtual DtExpandCollapseButton* createExpandCollapseButton(unsigned int, int numButtons);
128 
129  virtual int initialSortColumn() const;
130 
131  virtual void changeForceOf(const QStringList& ids, int);
132 
133  virtual void setAllowNameChange(bool);
134  virtual void setEditPressTime(double);
135 
136  virtual void setRootNodeDefaultHidden(QTreeWidgetItem*, bool);
137  virtual bool isRootNodeDefaultHidden(QTreeWidgetItem*);
138 
140  virtual void setDoubleClickAttachesAndCenters(bool b);
141  bool doubleClickAttachesAndCenters() const;
142 
143  boost::signals2::signal<void (QTreeWidgetItem*)> signal_itemDoubleClicked;
144 
145  public slots:
147  virtual void onItemSelected();
148 
149  protected slots:
150  virtual void onMarkingTextChanged(DtObjectListViewItem*, const QString&);
152  virtual void onRightClickOnItem(QTreeWidgetItem*, QMouseEvent*, int col);
153 
154  virtual void onScrollRangeChanged(int);
155  virtual void onViewItemExpanded(QTreeWidgetItem*);
156  virtual void onViewItemCollapsed(QTreeWidgetItem*);
157  virtual void onExpandToLevel(unsigned int);
158  virtual void onCollapseToLevel(unsigned int);
159 
160  virtual void itemDoubleClicked(QTreeWidgetItem*);
161 
162  virtual void executeTextFilter();
163  virtual void resetTextFilter();
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();
187 
189  virtual void deactivate();
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;
213  QFrame* myDividingLine;
214 
218  QHBoxLayout* mySearchBarLayout;
219  };
220 
223  {
224  Q_OBJECT
225 
226  public:
228  virtual ~DtDragDropBoxItemDelegate();
229 
230  virtual void paint(QPainter *painter,
231  const QStyleOptionViewItem &option,
232  const QModelIndex &index) const;
233 
234  protected:
236  };
237 
240  {
241  public:
244 
247 
249  static void registerInstance(makVrv::DtDe& de, DtDragDropBoxItemDelegateCreator* instance);
250 
251  virtual DtDragDropBoxItemDelegate* create(QWidget* parent);
252 
253  protected:
255  };
256 
258  {
259  public:
262 
263  virtual DtVrfSelectionFilter* clone() const;
264 
267  virtual bool isValid(const makVrv::DtVrlinkSimulatedBaseState*, const DtVrfObjectDataState* = 0) const;
268  virtual bool operator==(const DtVrfSelectionFilter&) const;
269  virtual bool showAsPossibleFilter() const { return false; };
270 
271  virtual void setShouldBeVisible(bool);
272  bool shouldBeVisible() const
273  {
274  return myShouldBeVisible;
275  }
276 
277  virtual void setRootNode(QTreeWidgetItem*);
279  {
280  return myRootNode;
281  }
282 
283  virtual void setHierarchyPageLogic(DtVrfHierarchyPageLogic*);
285  {
286  return myPageParentLogic;
287  }
288 
289  virtual void setStateViewCollectionManager(DtVrfStateViewCollectionManager*);
291  {
292  return myStateViewCollectionManager;
293  }
294 
295  virtual void setForce(int) {};
296 
297  protected:
298  bool myShouldBeVisible;
302  };
303 }
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:32
virtual bool showAsPossibleFilter() const
Definition: vrfHierarchyPage.h:269
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.
Show drag over box and create editor for max length given entity type.
Definition: vrfHierarchyPage.h:222
Definition: vrfHierarchyPage.h:257
QTreeWidgetItem * myRootNode
Definition: vrfHierarchyPage.h:299
QPixmap myMinusPixmap
Definition: vrfHierarchyPage.h:211
QPixmap myCollapsePixmap
Definition: vrfHierarchyPage.h:105
#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:59
QWidget * widget()
Definition: vrfHierarchyPage.h:57
QToolButton * myResetButton
Definition: vrfHierarchyPage.h:217
boost::signals2::signal< void(QTreeWidgetItem *)> signal_itemDoubleClicked
Definition: vrfHierarchyPage.h:143
virtual void setForce(int)
Definition: vrfHierarchyPage.h:295
DtVrfHierarchyPageLogic * myPageParentLogic
Definition: vrfHierarchyPage.h:300
!!!!!!!!!!!!!!! DtDragDropBoxItemDelegateCreator
Definition: vrfHierarchyPage.h:239
DtVrfTreeWidget * myEchelon
Definition: vrfHierarchyPage.h:208
VisibilityFilters myVisibilityFilters
Definition: vrfHierarchyPage.h:197
DtScrollButtonArea * myCollapseButtonWidget
Definition: vrfHierarchyPage.h:209
QTreeWidgetItem * rootNode() const
Definition: vrfHierarchyPage.h:278
DtVrfTreeWidget * myTreeWidget
Definition: vrfHierarchyPage.h:235
int myLevel
Definition: vrfHierarchyPage.h:107
QWidget * myCanvas
Definition: vrfHierarchyPage.h:68
QList< QTreeWidgetItem * > myLastSelectedItems
Definition: vrfHierarchyPage.h:203
Definition: vrfTreeWidget.h:26
Definition: vrfHierarchyPage.h:110
Small wrapper class for QToolButton to create the Expand/Collapse buttons.
Definition: vrfHierarchyPage.h:74
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
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:139
QPixmap myExpandPixmap
Definition: vrfHierarchyPage.h:104
QLineEdit * mySearch
Definition: vrfHierarchyPage.h:216
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:30
makVrv::DtSignalConnectionManager myConnections
Definition: vrfHierarchyPage.h:194
Delegate that will signal marking text change when item is edited.
Definition: markingTextSignalItemDelegate.h:19
Base class to provide boost signal/slot management.
DtVrfStateViewCollectionManager * stateViewCollectionManager() const
Definition: vrfHierarchyPage.h:290
QCheckBox * myShowEchelonId
Definition: vrfHierarchyPage.h:212
Definition: vrfHierarchyPage.h:50
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
QHBoxLayout * mySearchBarLayout
Definition: vrfHierarchyPage.h:218
bool myIsExpand
Definition: vrfHierarchyPage.h:106
QLabel * mySearchLabel
Definition: vrfHierarchyPage.h:215
DtVrfStateViewCollectionManager * myStateViewCollectionManager
Definition: vrfHierarchyPage.h:301
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:52
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:284
bool shouldBeVisible() const
Definition: vrfHierarchyPage.h:272
makVrv::DtDe & myDe
Definition: vrfHierarchyPage.h:254
Definition: vrfObjectDataState.h:87

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)