VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDisplayUnitsSettingsWidget.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
13 #include <vrvCoreQt/vrvCoreQt.h>
15 #endif
16 
17 #include <QtWidgets/QWidget>
18 
19 class QLabel;
20 class QComboBox;
21 class QSpinBox;
22 class QSpacerItem;
23 class QGridLayout;
24 class QVBoxLayout;
25 class QHBoxLayout;
26 
27 namespace makVrv
28 {
29 
33  : public QWidget
35  { Q_OBJECT;
36 
38 
39  public:
40 
43  DtDe& de,
44  QWidget* parent,
45  Qt::WindowFlags f = Qt::Widget );
46 
49 
54  virtual void addDisplayUnitToUI(
55  const DtUnicode& displayUnitCollectionName,
56  const DtUnicode& displayUnitName,
58 
63  virtual void updateDisplayUnitUnit(
64  const std::string& displayUnitCollectionName,
65  const std::string& displayUnitName,
66  unsigned int unitEnumValue );
67 
72  virtual void updateDisplayUnitDecimals(
73  const std::string& displayUnitCollectionName,
74  const std::string& displayUnitName,
75  unsigned int decimals );
76 
85  virtual void updateDisplayUnitName(
86  const DtUnicode& displayUnitCollectionName,
87  const DtUnicode& displayUnitName,
88  const DtUnicode& newDisplayName
89  );
90 
98  virtual void setDisplayUnitDecimalsQSpinBoxVisible(
99  const std::string& displayUnitCollectionName,
100  const std::string& displayUnitName,
101  bool isVisible
102  );
103 
105  virtual void addSuppressMagneticNorthNotationCheckBox();
106 
108  virtual void setSuppressMagneticNorthNotationEnabled(bool enabled);
109 
112  virtual void addObjectTypeToUI( const DtUnicode& objectType );
113 
116  virtual std::string currentObjectType() const;
117 
126  virtual void populateDisplayUnitComboBoxes(
128  const DtUnicode& name,
129  unsigned int unitEnumValue);
130 
132  virtual void removeUnitOfMeasurementEntryByDisplayUnit(const DtUnicode& displayUnitCollectionName, const DtUnicode& displayUnitName, const DtUnicode& unitOfMeasurementName);
133 
135  virtual void clear( );
136 
137  protected slots:
138 
139  void slot_onObjectTypeChanged( int index );
140  void slot_onDisplayUnitUnitChanged( int unit );
141  void slot_onDisplayUnitDecimalsChanged( int decimals );
142  void slot_onSuppressMagneticNorthNotationCheckboxChanged( int state );
143 
144  public:
145 
146  QGridLayout *myMainLayout;
147 
148  QHBoxLayout *myObjectTypeLayout;
151 
153 
154  std::map<std::string, std::set<QWidget*>> myDynamicWidgets;
155  std::map<std::string, unsigned int> myDynamicWidgetsLayoutIndices;
156 
157  std::map<makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitType, std::set<QComboBox*>> myComboBoxesByDisplayUnitType;
158 
159  protected:
160 
173  virtual void setupGui();
174 
180  virtual std::string getDisplayUnitKey(
181  const std::string& displayUnitCollectionName,
182  const std::string& displayUnitName ) const;
183 
185 
192  unsigned int myNextAvailableObjectRowIndex; // Default value is 0
193  unsigned int myNextAvailableApplicationRowIndex; // Default value is 50
194  unsigned int myNextAvailableWeatherRowIndex; // Default value is 100
195 
196  };
197 
201  : public DtVirtualBaseClass
202  {
203  public:
204  static DtDisplayUnitsSettingsWidgetCreator& instance(DtDe& de);
205  static void registerInstance(DtDe& de, DtDisplayUnitsSettingsWidgetCreator* creator);
206  virtual DtDisplayUnitsSettingsWidget* create(DtDe& de, QWidget* parent) const;
207  };
208 
209 }
unsigned int myNextAvailableWeatherRowIndex
Definition: DtDisplayUnitsSettingsWidget.h:194
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
std::map< std::string, unsigned int > myDynamicWidgetsLayoutIndices
Definition: DtDisplayUnitsSettingsWidget.h:155
QComboBox * myObjectTypeComboBox
Definition: DtDisplayUnitsSettingsWidget.h:150
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QHBoxLayout * myObjectTypeLayout
Definition: DtDisplayUnitsSettingsWidget.h:148
Contains DLL export macros.
DtDe & myDe
Definition: DtDisplayUnitsSettingsWidget.h:184
QLabel * myObjectTypeLabel
Definition: DtDisplayUnitsSettingsWidget.h:149
std::map< std::string, std::set< QWidget * > > myDynamicWidgets
Definition: DtDisplayUnitsSettingsWidget.h:154
DisplayUnitType
Enumeration of the different display unit types.
Definition: DtDisplayUnitsSettingsRecord.h:162
std::map< makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitType, std::set< QComboBox * > > myComboBoxesByDisplayUnitType
Definition: DtDisplayUnitsSettingsWidget.h:157
Interface for the settings widget to communicate with its logic.
Definition: DtDisplayUnitsSettingsInterface.h:27
QGridLayout * myMainLayout
Definition: DtDisplayUnitsSettingsWidget.h:146
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
Creator for the DtDisplayUnitsSettingsWidget.
Definition: DtDisplayUnitsSettingsWidget.h:200
QLabel * myDecimalPlacesLabel
Definition: DtDisplayUnitsSettingsWidget.h:152
unsigned int myNextAvailableApplicationRowIndex
Definition: DtDisplayUnitsSettingsWidget.h:193
unsigned int myNextAvailableObjectRowIndex
These are used to maintain the next free row in the QGridLayout so display units can continually be a...
Definition: DtDisplayUnitsSettingsWidget.h:192
This class displays the display units.
Definition: DtDisplayUnitsSettingsWidget.h:32
Interface for the display units settings dialog.

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)