VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
informationSectionedDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
14 
15 #include <boost/signals2.hpp>
16 
17 class QDialogButtonBox;
18 class QScrollArea;
19 class QVBoxLayout;
20 class QGridLayout;
21 class QHBoxLayout;
22 class QFrame;
23 class QPushButton;
24 class QToolButton;
25 class QLabel;
26 class QCloseEvent;
27 
28 namespace makVrf
29 {
30  namespace makVrfGuiObjectInformationQt
31  {
32  class DtInformationDialogHandler;
33  class DtInformationDialogSectionLine;
34  class DtInformationDialogWidgetSection;
35  class DtInformationDialogPageSection;
36 
38  {
39  Q_OBJECT
40 
41  public:
42  enum TabType
43  {
46  TabSmall
47  };
48 
50  DtInformationSectionedDialog(makVrv::DtDe& de,const std::string& pageName,QWidget* parent);
51 
53  virtual ~DtInformationSectionedDialog() override;
54 
56  virtual void removeSection(DtInformationSectionDisplayHandler*);
57 
59  virtual void addSection(DtInformationDialogWidgetSection*, const QString& title = "", bool collapsible = true,
60  bool collapsed = false, bool maximumHeightIsMinimumHeight = false);
61 
63  virtual void addSection(DtInformationDialogPageSection*, const QString& title = "", bool collapsible = true,
64  bool collapsed = false);
65 
67  virtual DtInformationDialogHandler* detachSection(int);
68 
71  virtual DtInformationDialogHandler* addSection(const std::string& name, bool collapsible, TabType tabbed,
72  bool collapsed = false, const QString& title = "", bool maximumHeightIsMinimumHeight = false);
73 
75  virtual void setOverflow(const std::set<makVrv::DtUniqueID>& overflow);
76 
77  virtual void deactivate() override;
78  virtual void activate(DtSimObjectReference state) override;
79  virtual void setupWindowTitle(DtSimObjectReference state);
80  virtual bool stateViewRemoved(const makVrv::DtUniqueID&);
81  virtual void slot_onStateViewUpdated() override;
82 
84  virtual void setSectionSeparatorHidden(int i, bool b);
85  virtual bool sectionSeparatorHidden(int i) const;
86 
88  virtual void setSectionHidden(int i, bool b);
89  virtual bool sectionHidden(int i) const;
90 
91  virtual bool containsSet(makVrv::DtSelectionManager::IdSet);
92 
93  virtual void showEvent(QShowEvent*) override;
94 
95  virtual void close() override {
96  QDialog::close();
97  }
98 
99  virtual void raise() override {
100  QDialog::raise();
101  }
102 
103  virtual void show() override {
104  QDialog::show();
105  }
106 
107  virtual void hide() override {
108  QDialog::hide();
109  }
110 
111  virtual void setParent(QWidget* p) override {
112  QDialog::setParent(p);
113  }
114 
115  virtual void setMinimumHeight(int i) override {
116  QDialog::setMinimumHeight(i);
117  }
118 
119  virtual void setMinimumWidth(int i) override {
120  QDialog::setMinimumWidth(i);
121  }
122 
123  virtual void setMaximumHeight(int i) override {
124  QDialog::setMaximumHeight(i);
125  }
126 
127  virtual void setMaximumWidth(int i) override {
128  QDialog::setMaximumWidth(i);
129  }
130 
131  virtual void setMaximumSize(const QSize& size) override {
132  QDialog::setMaximumSize(size);
133  }
134 
135  virtual QRect geometry() const override {
136  return QDialog::geometry();
137  }
138 
139  virtual void setMinimumSize(const QSize& size) override {
140  QDialog::setMinimumSize(size);
141  }
142 
143  virtual QSize minimumSizeHint() const override {
144  return QDialog::minimumSizeHint();
145  }
146 
148  virtual void setMaximumSectionsPerDialog(int);
150  {
151  return myMaximumSectionsPerDialog;
152  }
153 
156  virtual bool showInformationPage(std::string, DtInformationSectionDisplayHandler*);
157  virtual bool expandSection(std::string, bool b, DtInformationSectionDisplayHandler*);
158 
160  virtual void expandCollapseSection(std::string);
161 
162  virtual void selectPage(const std::string&, DtInformationSectionDisplayHandler* s = 0) override;
163 
164  boost::signals2::signal<void (makVrv::DtUniqueID, const std::string&)> signal_showInformationFor;
165 
166  protected:
167  virtual void sectionTitleSet(const QString&, DtInformationDialogHandler*);
168  virtual void sectionCollapsed(bool, DtInformationDialogSectionLine*);
169 
170  virtual void addPage(makVrv::DtPage*, const makVrv::DtPagePath&) override {};
171  virtual void addConditionalPage(
172  makVrv::DtPage*, const makVrv::DtPagePath&, DtSimObjectReference state) override {};
173  virtual void closeEvent(QCloseEvent* e) override;
174 
175  virtual void resizeDialog(int currentWidth = 0, int currentHeight = 0);
176  virtual void updateShowState(const std::string&, bool);
177  virtual void showFromOverflow(size_t num);
178 
179  protected slots:
180  virtual void showOverflow();
181 
182  public:
184  QWidget* myScrollWidget;
185  QVBoxLayout* myScrollLayout;
187  QHBoxLayout* myBottomLayout;
189 
190  protected:
191  size_t myMaximumSectionsPerDialog = 20;
192 
193  struct Section
194  {
195  Section() : canvas(0), page(0), section(0), sectionHidden(false), sectionLineHidden(false), rowStart(0), rowEnd(0) {};
196  Section(const Section& orig)
197  : canvas(orig.canvas), page(orig.page), section(orig.section), sectionName(orig.sectionName),
198  sectionHidden(orig.sectionHidden), sectionLineHidden(orig.sectionLineHidden), minimumSizeHint(orig.minimumSizeHint),
199  rowStart(orig.rowStart), rowEnd(orig.rowEnd) {};
200 
201  QWidget* canvas;
204  std::string sectionName;
208  int rowStart, rowEnd;
209  };
210 
211  typedef std::vector<Section> Sections;
213 
215  std::string myName;
216 
217  std::set<makVrv::DtUniqueID> myOverflow;
218  };
219 
222  {
223  public:
225  DtInformationSummarySectionedDialog(makVrv::DtDe& de,const std::string& pageName,QWidget* parent);
226 
228  virtual ~DtInformationSummarySectionedDialog() override;
229 
231  virtual void addSection(DtInformationDialogWidgetSection*, const QString& title = "", bool collapsible = true,
232  bool collapsed = false, bool maximumHeightIsMinimumHeight = false) override;
233 
235  virtual void addSection(DtInformationDialogPageSection*, const QString& title = "", bool collapsible = true,
236  bool collapsed = false) override;
237 
239  virtual void removeSection(DtInformationSectionDisplayHandler*) override;
240 
241  virtual void resizeDialog(int currentWidth = 0, int currentHeight = 0) override;
242 
243  protected:
244  virtual void closeButtonPressed(DtInformationDialogSectionLine*);
245 
246  public:
247  QWidget* myCanvas;
248  QGridLayout* myGridLayout;
249  };
250 
252  {
253  Q_OBJECT
254 
255  public:
258 
260  virtual ~DtInformationDialogSectionLine() override;
261 
262  virtual void setCollapsed(bool);
263  virtual bool collapsed() const;
264 
265  virtual void setCollapsible(bool);
266  virtual bool collapsible() const;
267 
268  virtual void setTitle(const QString&);
269 
270  virtual void hideSectionLine(bool b);
271  virtual void setShowCloseButton(bool b);
272 
273  boost::signals2::signal<void (bool)> signal_sectionCollapsed;
274  boost::signals2::signal<void (DtInformationDialogSectionLine*)> signal_closeButtonPressed;
275 
276  protected slots:
277  virtual void expandButtonPressed();
278  virtual void closeButtonPressed();
279 
280  protected:
281  virtual bool eventFilter(QObject*, QEvent*) override;
282 
283  public:
288 
289  protected:
292  };
293  }
294 }
QVBoxLayout * myScrollLayout
Definition: informationSectionedDialog.h:185
virtual void show() override
Definition: informationSectionedDialog.h:103
virtual void hide() override
Definition: informationSectionedDialog.h:107
boost::signals2::signal< void(bool)> signal_sectionCollapsed
Definition: informationSectionedDialog.h:273
QSize minimumSizeHint
Definition: informationSectionedDialog.h:207
virtual void setMaximumWidth(int i) override
Definition: informationSectionedDialog.h:127
virtual void setMinimumSize(const QSize &size) override
Definition: informationSectionedDialog.h:139
voidpf void uLong size
Definition: ioapi.h:39
makVrv::DtDe & myDe
Definition: informationSectionedDialog.h:290
Contains makVrv:DtSelectionManager class.
std::set< makVrv::DtUniqueID > myOverflow
Definition: informationSectionedDialog.h:217
bool sectionHidden
Definition: informationSectionedDialog.h:205
Dialog page without the buttons.
Definition: informationDialog.h:155
virtual void addPage(makVrv::DtPage *, const makVrv::DtPagePath &) override
Definition: informationSectionedDialog.h:170
QToolButton * myCloseButton
Definition: informationSectionedDialog.h:287
boost::signals2::signal< void(makVrv::DtUniqueID, const std::string &)> signal_showInformationFor
Definition: informationSectionedDialog.h:164
virtual void setMinimumWidth(int i) override
Definition: informationSectionedDialog.h:119
Summary section dialogs only allow the addition of widget sections and will add them to one big maste...
Definition: informationSectionedDialog.h:221
QToolButton * myExpanded
Definition: informationSectionedDialog.h:286
Sections that are added in an information dialog section dialog need to be subclasses of this...
Definition: informationDialogHandler.h:113
QFrame * myLine
Definition: informationSectionedDialog.h:285
std::string sectionName
Definition: informationSectionedDialog.h:204
QPushButton * myCloseButton
Definition: informationSectionedDialog.h:186
QPushButton * myOverflowButton
Definition: informationSectionedDialog.h:188
makVrv::DtDe & myDe
Definition: informationSectionedDialog.h:214
boost::signals2::signal< void(DtInformationDialogSectionLine *)> signal_closeButtonPressed
Definition: informationSectionedDialog.h:274
virtual void setMaximumSize(const QSize &size) override
Definition: informationSectionedDialog.h:131
virtual QRect geometry() const override
Definition: informationSectionedDialog.h:135
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:51
bool sectionLineHidden
Definition: informationSectionedDialog.h:206
bool myIsCollapsible
Definition: informationSectionedDialog.h:291
virtual void setParent(QWidget *p) override
Definition: informationSectionedDialog.h:111
!!!!!
Definition: informationDialogHandler.h:146
Sections mySections
Definition: informationSectionedDialog.h:212
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
A page path is the location of a page based upon its parents. A page path usually only consists of a ...
Definition: DtPagePath.h:21
QWidget * myScrollWidget
Definition: informationSectionedDialog.h:184
std::vector< Section > Sections
Definition: informationSectionedDialog.h:211
virtual QSize minimumSizeHint() const override
Definition: informationSectionedDialog.h:143
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:24
Definition: informationDialogWidgetSection.h:50
TabType
Definition: informationSectionedDialog.h:42
virtual void setMinimumHeight(int i) override
Definition: informationSectionedDialog.h:115
DtInformationDialogHandler * page
Definition: informationSectionedDialog.h:202
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
QGridLayout * myGridLayout
Definition: informationSectionedDialog.h:248
virtual void setMaximumHeight(int i) override
Definition: informationSectionedDialog.h:123
DtInformationDialogSectionLine * section
Definition: informationSectionedDialog.h:203
QLabel * myLabel
Definition: informationSectionedDialog.h:284
int maximumSectionsPerDialog() const
Definition: informationSectionedDialog.h:149
virtual void addConditionalPage(makVrv::DtPage *, const makVrv::DtPagePath &, DtSimObjectReference state) override
Adds a page that is not added to the toolbar, but would be added at the given index if if can be show...
Definition: informationSectionedDialog.h:171
QScrollArea * myScrollArea
Definition: informationSectionedDialog.h:183
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
QHBoxLayout * myBottomLayout
Definition: informationSectionedDialog.h:187
Contains makVrv::DtInformationDialog class.
Section(const Section &orig)
Definition: informationSectionedDialog.h:196
std::string myName
Definition: informationSectionedDialog.h:215
virtual void close() override
Definition: informationSectionedDialog.h:95
QWidget * myCanvas
Definition: informationSectionedDialog.h:247

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)