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 
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();
78  virtual void activate(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
79  virtual void setupWindowTitle(makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* state);
80  virtual bool stateViewRemoved(const makVrv::DtUniqueID&);
81  virtual void slot_onStateViewUpdated();
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 *);
94 
95  virtual void close()
96  {
97  QDialog::close();
98  }
99 
100  virtual void raise()
101  {
102  QDialog::raise();
103  }
104 
105  virtual void show()
106  {
107  QDialog::show();
108  }
109 
110  virtual void hide()
111  {
112  QDialog::hide();
113  }
114 
115  virtual void setParent(QWidget* p)
116  {
117  QDialog::setParent(p);
118  }
119 
120  virtual void setMinimumHeight(int i)
121  {
122  QDialog::setMinimumHeight(i);
123  }
124 
125  virtual void setMinimumWidth(int i)
126  {
127  QDialog::setMinimumWidth(i);
128  }
129 
130  virtual void setMaximumHeight(int i)
131  {
132  QDialog::setMaximumHeight(i);
133  }
134 
135  virtual void setMaximumWidth(int i)
136  {
137  QDialog::setMaximumWidth(i);
138  }
139 
140  virtual void setMaximumSize(const QSize& size)
141  {
142  QDialog::setMaximumSize(size);
143  }
144 
145  virtual QRect geometry() const
146  {
147  return QDialog::geometry();
148  }
149 
150  virtual void setMinimumSize(const QSize& size)
151  {
152  QDialog::setMinimumSize(size);
153  }
154 
155  virtual QSize minimumSizeHint() const
156  {
157  return QDialog::minimumSizeHint();
158  }
159 
161  virtual void setMaximumSectionsPerDialog(int);
163  {
164  return myMaximumSectionsPerDialog;
165  }
166 
169  virtual bool showInformationPage(std::string, DtInformationSectionDisplayHandler*);
170  virtual bool expandSection(std::string, bool b, DtInformationSectionDisplayHandler*);
171 
173  virtual void expandCollapseSection(std::string);
174 
175  virtual void selectPage(const std::string&, DtInformationSectionDisplayHandler* s = 0);
176 
177  boost::signals2::signal<void (makVrv::DtUniqueID, const std::string&)> signal_showInformationFor;
178 
179  protected:
180  virtual void sectionTitleSet(const QString&, DtInformationDialogHandler*);
181  virtual void sectionCollapsed(bool, DtInformationDialogSectionLine*);
182 
183  virtual void addPage(makVrv::DtPage*, const makVrv::DtPagePath&) {};
186  virtual void closeEvent(QCloseEvent* e);
187 
188  virtual void resizeDialog(int currentWidth = 0, int currentHeight = 0);
189  virtual void updateShowState(const std::string&, bool);
190  virtual void showFromOverflow(size_t num);
191 
192  protected slots:
193  virtual void showOverflow();
194 
195  public:
196  QScrollArea* myScrollArea;
197  QWidget* myScrollWidget;
198  QVBoxLayout* myScrollLayout;
200  QHBoxLayout* myBottomLayout;
202 
203  protected:
204  size_t myMaximumSectionsPerDialog = 20;
205 
206  struct Section
207  {
208  Section() : canvas(0), page(0), section(0), sectionHidden(false), sectionLineHidden(false), rowStart(0), rowEnd(0) {};
209  Section(const Section& orig)
210  : canvas(orig.canvas), page(orig.page), section(orig.section), sectionName(orig.sectionName),
211  sectionHidden(orig.sectionHidden), sectionLineHidden(orig.sectionLineHidden), minimumSizeHint(orig.minimumSizeHint),
212  rowStart(orig.rowStart), rowEnd(orig.rowEnd) {};
213 
214  QWidget* canvas;
217  std::string sectionName;
221  int rowStart, rowEnd;
222  };
223 
224  typedef std::vector<Section> Sections;
226 
228  std::string myName;
229 
230  std::set<makVrv::DtUniqueID> myOverflow;
231  };
232 
235  {
236  public:
238  DtInformationSummarySectionedDialog(makVrv::DtDe& de,const std::string& pageName,QWidget* parent);
239 
242 
244  virtual void addSection(DtInformationDialogWidgetSection*, const QString& title = "", bool collapsible = true,
245  bool collapsed = false, bool maximumHeightIsMinimumHeight = false);
246 
248  virtual void addSection(DtInformationDialogPageSection*, const QString& title = "", bool collapsible = true,
249  bool collapsed = false);
250 
252  virtual void removeSection(DtInformationSectionDisplayHandler*);
253 
254  virtual void resizeDialog(int currentWidth = 0, int currentHeight = 0);
255 
256  protected:
257  virtual void closeButtonPressed(DtInformationDialogSectionLine*);
258 
259  public:
260  QWidget* myCanvas;
261  QGridLayout* myGridLayout;
262  };
263 
265  {
266  Q_OBJECT
267 
268  public:
271 
274 
275  virtual void setCollapsed(bool);
276  virtual bool collapsed() const;
277 
278  virtual void setCollapsible(bool);
279  virtual bool collapsible() const;
280 
281  virtual void setTitle(const QString&);
282 
283  virtual void hideSectionLine(bool b);
284  virtual void setShowCloseButton(bool b);
285 
286  boost::signals2::signal<void (bool)> signal_sectionCollapsed;
287  boost::signals2::signal<void (DtInformationDialogSectionLine*)> signal_closeButtonPressed;
288 
289  protected slots:
290  virtual void expandButtonPressed();
291  virtual void closeButtonPressed();
292 
293  protected:
294  virtual bool eventFilter(QObject*, QEvent*);
295 
296  public:
301 
302  protected:
305  };
306  }
307 }
QVBoxLayout * myScrollLayout
Definition: informationSectionedDialog.h:198
virtual void setMinimumHeight(int i)
Definition: informationSectionedDialog.h:120
boost::signals2::signal< void(bool)> signal_sectionCollapsed
Definition: informationSectionedDialog.h:286
QSize minimumSizeHint
Definition: informationSectionedDialog.h:220
voidpf void uLong size
Definition: ioapi.h:39
makVrv::DtDe & myDe
Definition: informationSectionedDialog.h:303
Contains makVrv:DtSelectionManager class.
std::set< makVrv::DtUniqueID > myOverflow
Definition: informationSectionedDialog.h:230
bool sectionHidden
Definition: informationSectionedDialog.h:218
Dialog page without the buttons.
Definition: informationDialog.h:163
virtual void setMaximumSize(const QSize &size)
Definition: informationSectionedDialog.h:140
virtual void hide()
Definition: informationSectionedDialog.h:110
QToolButton * myCloseButton
Definition: informationSectionedDialog.h:300
boost::signals2::signal< void(makVrv::DtUniqueID, const std::string &)> signal_showInformationFor
Definition: informationSectionedDialog.h:177
Summary section dialogs only allow the addition of widget sections and will add them to one big maste...
Definition: informationSectionedDialog.h:234
virtual void setParent(QWidget *p)
Definition: informationSectionedDialog.h:115
QToolButton * myExpanded
Definition: informationSectionedDialog.h:299
Sections that are added in an information dialog section dialog need to be subclasses of this...
Definition: informationDialogHandler.h:109
QFrame * myLine
Definition: informationSectionedDialog.h:298
std::string sectionName
Definition: informationSectionedDialog.h:217
QPushButton * myCloseButton
Definition: informationSectionedDialog.h:199
QPushButton * myOverflowButton
Definition: informationSectionedDialog.h:201
virtual void setMaximumHeight(int i)
Definition: informationSectionedDialog.h:130
makVrv::DtDe & myDe
Definition: informationSectionedDialog.h:227
boost::signals2::signal< void(DtInformationDialogSectionLine *)> signal_closeButtonPressed
Definition: informationSectionedDialog.h:287
The page is a single widget component which is viewed in a page collection.
Definition: DtPage.h:30
virtual void addConditionalPage(makVrv::DtPage *, const makVrv::DtPagePath &, const makVrv::DtStateView< makVrv::DtVrlinkSimulatedBaseState > *state)
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:184
bool sectionLineHidden
Definition: informationSectionedDialog.h:219
bool myIsCollapsible
Definition: informationSectionedDialog.h:304
!!!!!
Definition: informationDialogHandler.h:147
Sections mySections
Definition: informationSectionedDialog.h:225
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
virtual QSize minimumSizeHint() const
Definition: informationSectionedDialog.h:155
QWidget * myScrollWidget
Definition: informationSectionedDialog.h:197
std::vector< Section > Sections
Definition: informationSectionedDialog.h:224
virtual void close()
Definition: informationSectionedDialog.h:95
virtual void setMinimumWidth(int i)
Definition: informationSectionedDialog.h:125
#define DT_DLL_VRFGUIOBJECTINFORMATIONQT
Contains DLL export macros.
Definition: vrfGuiObjectInformationQt.h:24
Definition: informationDialogWidgetSection.h:52
TabType
Definition: informationSectionedDialog.h:42
virtual void show()
Definition: informationSectionedDialog.h:105
virtual void setMinimumSize(const QSize &size)
Definition: informationSectionedDialog.h:150
DtInformationDialogHandler * page
Definition: informationSectionedDialog.h:215
virtual void addPage(makVrv::DtPage *, const makVrv::DtPagePath &)
Definition: informationSectionedDialog.h:183
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
QGridLayout * myGridLayout
Definition: informationSectionedDialog.h:261
virtual void setMaximumWidth(int i)
Definition: informationSectionedDialog.h:135
DtInformationDialogSectionLine * section
Definition: informationSectionedDialog.h:216
virtual QRect geometry() const
Definition: informationSectionedDialog.h:145
QLabel * myLabel
Definition: informationSectionedDialog.h:297
int maximumSectionsPerDialog() const
Definition: informationSectionedDialog.h:162
QScrollArea * myScrollArea
Definition: informationSectionedDialog.h:196
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
QHBoxLayout * myBottomLayout
Definition: informationSectionedDialog.h:200
Contains makVrv::DtInformationDialog class.
Section(const Section &orig)
Definition: informationSectionedDialog.h:209
std::string myName
Definition: informationSectionedDialog.h:228
QWidget * myCanvas
Definition: informationSectionedDialog.h:260

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)