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 DtVrfStateViewCollectionManager;
49  class DtSearchWidget;
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);
64  virtual void resizeEvent(QResizeEvent* e);
65  virtual void dragEnterEvent(QDragEnterEvent *event);
66  virtual void dropEvent(QDropEvent *e);
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();
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*);
103 
104  protected:
105  QPixmap myExpandPixmap;
108  int myLevel;
109  };
110 
112  {
113  Q_OBJECT
114 
115  public:
117  virtual ~DtVrfHierarchyPage();
118 
119  DtVrfTreeWidget* echelon();
120 
123  virtual void selectObjects(const std::vector<DtObjectListViewItem::DtVrfObjectState>);
124 
126  virtual std::vector<DtObjectListViewItem::DtVrfObjectState> 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();
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;
214 
216  };
217 
220  {
221  Q_OBJECT
222 
223  public:
225  virtual ~DtDragDropBoxItemDelegate();
226 
227  virtual void paint(QPainter *painter,
228  const QStyleOptionViewItem &option,
229  const QModelIndex &index) const;
230 
231  protected:
233  };
234 
237  {
238  public:
241 
244 
246  static void registerInstance(makVrv::DtDe& de, DtDragDropBoxItemDelegateCreator* instance);
247 
248  virtual DtDragDropBoxItemDelegate* create(QWidget* parent);
249 
250  protected:
252  };
253 
255  {
256  public:
259 
260  virtual DtVrfSelectionFilter* clone() const;
261 
264  virtual bool isValid(const makVrv::DtVrlinkSimulatedBaseState*, const DtVrfObjectDataState* = 0) const;
265  virtual bool operator==(const DtVrfSelectionFilter&) const;
266  virtual bool showAsPossibleFilter() const { return false; };
267 
268  virtual void setShouldBeVisible(bool);
269  bool shouldBeVisible() const
270  {
271  return myShouldBeVisible;
272  }
273 
274  virtual void setRootNode(QTreeWidgetItem*);
276  {
277  return myRootNode;
278  }
279 
280  virtual void setHierarchyPageLogic(DtVrfHierarchyPageLogic*);
282  {
283  return myPageParentLogic;
284  }
285 
286  virtual void setStateViewCollectionManager(DtVrfStateViewCollectionManager*);
288  {
289  return myStateViewCollectionManager;
290  }
291 
292  virtual void setForce(int) {};
293 
294  protected:
295  bool myShouldBeVisible;
299  };
300 }
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:32
virtual bool showAsPossibleFilter() const
Definition: vrfHierarchyPage.h:266
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:219
Definition: vrfHierarchyPage.h:254
QTreeWidgetItem * myRootNode
Definition: vrfHierarchyPage.h:296
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
QWidget * widget()
Definition: vrfHierarchyPage.h:58
boost::signals2::signal< void(QTreeWidgetItem *)> signal_itemDoubleClicked
Definition: vrfHierarchyPage.h:144
virtual void setForce(int)
Definition: vrfHierarchyPage.h:292
DtVrfHierarchyPageLogic * myPageParentLogic
Definition: vrfHierarchyPage.h:297
!!!!!!!!!!!!!!! DtDragDropBoxItemDelegateCreator
Definition: vrfHierarchyPage.h:236
DtVrfTreeWidget * myEchelon
Definition: vrfHierarchyPage.h:208
VisibilityFilters myVisibilityFilters
Definition: vrfHierarchyPage.h:197
DtScrollButtonArea * myCollapseButtonWidget
Definition: vrfHierarchyPage.h:209
QTreeWidgetItem * rootNode() const
Definition: vrfHierarchyPage.h:275
DtVrfTreeWidget * myTreeWidget
Definition: vrfHierarchyPage.h:232
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
This class is the central point for looking up information about a particular object in the VRF GUI...
Definition: vrfStateViewCollectionManager.h:143
QPixmap myExpandPixmap
Definition: vrfHierarchyPage.h:105
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
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Base class to provide boost signal/slot management.
Definition: searchWidget.h:22
DtVrfStateViewCollectionManager * stateViewCollectionManager() const
Definition: vrfHierarchyPage.h:287
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:72
bool myIsExpand
Definition: vrfHierarchyPage.h:107
DtVrfStateViewCollectionManager * myStateViewCollectionManager
Definition: vrfHierarchyPage.h:298
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:55
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:281
bool shouldBeVisible() const
Definition: vrfHierarchyPage.h:269
makVrv::DtDe & myDe
Definition: vrfHierarchyPage.h:251
Definition: vrfObjectDataState.h:87

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)