VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rangeRingsOptionsWidget.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vrvUtil/signalslib.h>
15 #include <boost/signals2.hpp>
16 
17 #include <QtWidgets/QWidget>
18 
19 class QVBoxLayout;
20 class QCheckBox;
21 class QListWidget;
22 class QGroupBox;
23 class QHBoxLayout;
24 class QPushButton;
25 class QListWidgetItem;
26 class QGridLayout;
27 class QScrollArea;
28 class QComboBox;
29 class QLabel;
30 class QSpinBox;
31 class QFrame;
32 
34 //
36 
37 namespace makVrv
38 {
39  class DtDe;
40  class DtPersistenceControlsInterface;
41 }
42 
43 namespace makVrf
44 {
45  class DtRangeRingsOptionsWidget;
46  class DtRangeRingEntry;
47 
49  {
50  public:
54 
57 
58  protected: //Receive boost signals from interface class
59  virtual void on_colorChanged(const std::string& type, QColor color, const QString& label);
60  virtual void on_visibilityChanged(const std::string& type, bool);
61  virtual void on_addInstance(const std::string& type, int color, const QString& label);
62  virtual void on_toggleRangeSphere(bool onOff);
63  virtual void on_toggleWeaponNameLabel( bool onOff );
64  virtual void on_toggleEntityNameLabel( bool onOff );
65  virtual void on_toggleRangeValueLabel( bool onOff );
66  virtual void on_toggleDisplayByDefault( bool onOff );
67  virtual void on_toggleDisplayForSelected( bool onOff );
68  virtual void on_toggleDisplayPhysicalFootprint( bool onOff );
69  virtual void on_colorOptionAdded(std::string);
70  virtual void on_colorOptionRequested(std::string);
71  virtual void on_changeSphereOpacityModifier(double);
72 
73  protected:
74  virtual void setupFromOptions(const DtRangeRingsSettingsRecord&);
75 
77  virtual void on_import();
78  virtual void on_export();
79  virtual void on_defaultsRestored();
80  virtual void on_importFilePathChosen(const std::string& filePath);
81  virtual void on_exportFilePathChosen(const std::string& filePath);
82 
83  virtual void tick();
84 
85  protected:
90  };
91 
93  {
94  Q_OBJECT
95 
96  public:
97 
99  DtRangeRingsOptionsWidget(makVrv::DtDe& de, QWidget* parent = NULL, const Qt::WindowFlags& flags = 0 );
100 
102  virtual ~DtRangeRingsOptionsWidget();
103 
104  virtual QString getLabelFromType(const std::string& type);
105 
106  //Accessors & mutators for dialog elements
107 
108  virtual void clearRangeRingTypes();
109  virtual void addRangeRingType(const std::string& type, const DtRangeRingsSettingsRecord::ColorOption&);
110  virtual void colorOptionRequested(const std::string&);
111 
112  virtual bool showRangeSphere();
113  virtual void setShowRangeSphere( bool onOff );
114 
115  virtual void setSphereOpacityModifier(double);
116  virtual double sphereOpacityModifier() const;
117 
118  virtual bool showWeaponNameLabel();
119  virtual void setShowWeaponNameLabel( bool onOff );
120 
121  virtual bool showEntityNameLabel();
122  virtual void setShowEntityNameLabel( bool onOff );
123 
124  virtual bool showRangeValueLabel();
125  virtual void setShowRangeValueLabel( bool onOff );
126 
127  virtual bool displayByDefault();
128  virtual void setDisplayByDefault( bool onOff );
129 
130  virtual bool displayForSelected();
131  virtual void setDisplayForSelected( bool onOff );
132 
133  virtual bool displayPhysicalFootprint();
134  virtual void setDisplayPhysicalFootprint( bool onOff );
135 
136  protected:
137 
138  void setupGui();
139 
140  public slots: //Qt slots used as intermediaries between Qt signals and Boost signal classes
141 
142  virtual void on_colorChanged();
143  virtual void on_visibilityChanged(bool onOff);
144  virtual void on_toggleRangeSphere(bool onOff);
145  virtual void on_toggleWeaponNameLabel( bool onOff );
146  virtual void on_toggleEntityNameLabel( bool onOff );
147  virtual void on_toggleRangeValueLabel( bool onOff );
148 
149  virtual void on_toggleDisplayByDefault( bool onOff );
150  virtual void on_toggleDisplayForSelected( bool onOff );
151  virtual void on_toggleDisplayPhysicalFootprint( bool onOff );
152  virtual void sphereOpacityChanged();
153 
154  //Used to re-emit QT signals up to logic class
155  public:
156  boost::signals2::signal<void (std::string, QColor, QString)> signal_colorChanged;
157  boost::signals2::signal<void (std::string, bool)> signal_visibilityChanged;
158  boost::signals2::signal<void (bool)> signal_toggleRangeSphere;
159  boost::signals2::signal<void (bool)> signal_toggleWeaponNameLabel;
160  boost::signals2::signal<void (bool)> signal_toggleEntityNameLabel;
161  boost::signals2::signal<void (bool)> signal_toggleRangeValueLabel;
162  boost::signals2::signal<void (bool)> signal_toggleDisplayByDefaultValue;
163  boost::signals2::signal<void (bool)> signal_toggleDisplayForSelectedValue;
164  boost::signals2::signal<void (bool)> signal_toggleDisplayPhysicalFootprintValue;
165  boost::signals2::signal<void (double)> signal_sphereOpacityModifierChanged;
166 
167  private:
170 
173 
174  public:
183  QScrollArea* myScrollView;
185  QVBoxLayout* myMainLayout;
186  QHBoxLayout* my3DLayout;
188 
189  protected:
191 
192  typedef std::map<std::string, DtRangeRingEntry*> RangeRingEntries;
194  };
195 
198 
200  {
201  Q_OBJECT
202 
203  public:
204 
206  DtRangeRingEntry(QString label, const std::string& ringType , const DtRangeRingsSettingsRecord::ColorOption& rangeRingInfo,
207  QWidget* parent);
208 
210  virtual ~DtRangeRingEntry();
211 
212  public: //Accessors
213 
214  virtual QColor ringColor() const;
215  virtual bool useForceColor() const;
216  virtual double ringAlphaF() const;
217  virtual const std::string& rangeRingType() const;
218  virtual QString ringLabel() const;
219  virtual void setVisible(bool);
220 
221  signals:
222  //Signals on changes to RGB value, Alpha or toggling Use Force Color
223  void signalColorChanged();
224  void signalVisibilityChanged(bool);
225 
226  protected:
227 
228  void setupGui(QColor colorFromRecord, bool visible);
229  void setButtonColor();
230 
231  public slots: //Qt slots
232 
233  //creates a color choosing dialog and populates myUserDefinedRgb with it
234  virtual void chooseColor();
235  //updates widget coloring and triggers signal
236  virtual void slotColorChanged();
237  virtual void visibilityChanged();
238 
239  protected:
240 
241  std::string myRangeRingType;
243 
244  public:
246  QHBoxLayout* myColorLayout;
251  QString myEntryLabel;
252  };
253 
254 };
QCheckBox * myDisplayRangeRingsForSelected
Definition: rangeRingsOptionsWidget.h:180
makVrv::DtDe & myDe
Definition: rangeRingsOptionsWidget.h:86
boost::signals2::signal< void(double)> signal_sphereOpacityModifierChanged
Definition: rangeRingsOptionsWidget.h:165
std::map< std::string, DtRangeRingEntry * > RangeRingEntries
Definition: rangeRingsOptionsWidget.h:192
QCheckBox * myShowEntityNameLabelCheckBox
Definition: rangeRingsOptionsWidget.h:177
DtRangeRingsOptionsWidget & myInterface
Definition: rangeRingsOptionsWidget.h:87
Definition: rangeRingsSettingsRecord.h:45
Definition: rangeRingsOptionsWidget.h:92
#define DT_DLL_VRFGUISETTINGSWIDGETS
Definition: vrfGuiSettingsWidgets.h:22
boost::signals2::signal< void(bool)> signal_toggleEntityNameLabel
Definition: rangeRingsOptionsWidget.h:160
QHBoxLayout * myColorLayout
Definition: rangeRingsOptionsWidget.h:246
boost::signals2::signal< void(std::string, QColor, QString)> signal_colorChanged
Definition: rangeRingsOptionsWidget.h:156
boost::signals2::signal< void(bool)> signal_toggleDisplayByDefaultValue
Definition: rangeRingsOptionsWidget.h:162
Definition: rangeRingsOptionsWidget.h:48
makVrv::DtSignalConnectionManager myConnectionManager
Definition: rangeRingsOptionsWidget.h:89
boost::signals2::signal< void(std::string, bool)> signal_visibilityChanged
Definition: rangeRingsOptionsWidget.h:157
QCheckBox * myDisplayRangeRingsByDefault
Definition: rangeRingsOptionsWidget.h:179
std::string myRangeRingType
Definition: rangeRingsOptionsWidget.h:241
boost::signals2::signal< void(bool)> signal_toggleRangeSphere
Definition: rangeRingsOptionsWidget.h:158
QString myEntryLabel
Definition: rangeRingsOptionsWidget.h:251
QSpinBox * mySphereOpacityModifier
Definition: rangeRingsOptionsWidget.h:187
QCheckBox * myAlwaysShowPhysicalFootprint
Definition: rangeRingsOptionsWidget.h:181
Abstract interface for controlling persistence of state in a dialog.
Definition: DtPersistenceControlsInterface.h:20
QCheckBox * myVisible
Definition: rangeRingsOptionsWidget.h:245
QPushButton * colorButton
Definition: rangeRingsOptionsWidget.h:248
This class is a widget representing a single range ring entry.
Definition: rangeRingsOptionsWidget.h:199
boost::signals2::signal< void(bool)> signal_toggleWeaponNameLabel
Definition: rangeRingsOptionsWidget.h:159
QColor myUserDefinedRgb
Definition: rangeRingsOptionsWidget.h:242
QWidget * myRangeRingsContainer
Definition: rangeRingsOptionsWidget.h:184
makVrv::DtDe & myDe
Definition: rangeRingsOptionsWidget.h:190
QCheckBox * myShowRangeValueLabelCheckBox
Definition: rangeRingsOptionsWidget.h:178
boost::signals2::signal< void(bool)> signal_toggleRangeValueLabel
Definition: rangeRingsOptionsWidget.h:161
QScrollArea * myScrollView
Definition: rangeRingsOptionsWidget.h:183
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
QComboBox * useForceColorBox
Definition: rangeRingsOptionsWidget.h:247
QFrame * colorButtonBackground
Definition: rangeRingsOptionsWidget.h:250
QSpinBox * alphaSpinBox
Definition: rangeRingsOptionsWidget.h:249
boost::signals2::signal< void(bool)> signal_toggleDisplayForSelectedValue
Definition: rangeRingsOptionsWidget.h:163
QGridLayout * myRangeRingTypesLabelLayout
Definition: rangeRingsOptionsWidget.h:182
Base class to provide boost signal/slot management.
QCheckBox * myShowWeaponNameLabelCheckBox
Definition: rangeRingsOptionsWidget.h:176
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signals2::signal< void(bool)> signal_toggleDisplayPhysicalFootprintValue
Definition: rangeRingsOptionsWidget.h:164
Definition: rangeRingsSettingsRecord.h:29
makVrv::DtPersistenceControlsInterface & myToolbarInterface
Definition: rangeRingsOptionsWidget.h:88
QHBoxLayout * my3DLayout
Definition: rangeRingsOptionsWidget.h:186
RangeRingEntries myRangeRingEntries
Definition: rangeRingsOptionsWidget.h:193
QCheckBox * myToggleRangeSphereCheckBox
Definition: rangeRingsOptionsWidget.h:175
QVBoxLayout * myMainLayout
Definition: rangeRingsOptionsWidget.h:185

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)