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) 2024 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:
138 
145  virtual unsigned int placeDisplayUnitInUI(const DtUnicode& displayUnitCollectionName,
146  QLabel* newLabel, QSpinBox* newSpinBox, QComboBox* newComboBox);
147 
148  protected slots:
149 
150  void slot_onObjectTypeChanged( int index );
151  void slot_onDisplayUnitUnitChanged( int unit );
152  void slot_onDisplayUnitDecimalsChanged( int decimals );
153  void slot_onSuppressMagneticNorthNotationCheckboxChanged( int state );
154 
155  public:
156 
157  QGridLayout *myMainLayout;
158 
159  QHBoxLayout *myObjectTypeLayout;
162 
164 
165  std::map<std::string, std::set<QWidget*>> myDynamicWidgets;
166  std::map<std::string, unsigned int> myDynamicWidgetsLayoutIndices;
167 
168  std::map<makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitType, std::set<QComboBox*>> myComboBoxesByDisplayUnitType;
169 
170  protected:
171 
184  virtual void setupGui();
185 
191  virtual std::string getDisplayUnitKey(
192  const std::string& displayUnitCollectionName,
193  const std::string& displayUnitName ) const;
194 
196 
203  unsigned int myNextAvailableObjectRowIndex; // Default value is 0
204  unsigned int myNextAvailableApplicationRowIndex; // Default value is 50
205  unsigned int myNextAvailableWeatherRowIndex; // Default value is 100
206 
207  };
208 
212  : public DtVirtualBaseClass
213  {
214  public:
215  static DtDisplayUnitsSettingsWidgetCreator& instance(DtDe& de);
216  static void registerInstance(DtDe& de, DtDisplayUnitsSettingsWidgetCreator* creator);
217  virtual DtDisplayUnitsSettingsWidget* create(DtDe& de, QWidget* parent) const;
218  };
219 
220 }
unsigned int myNextAvailableWeatherRowIndex
Definition: DtDisplayUnitsSettingsWidget.h:205
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:166
QComboBox * myObjectTypeComboBox
Definition: DtDisplayUnitsSettingsWidget.h:161
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
QHBoxLayout * myObjectTypeLayout
Definition: DtDisplayUnitsSettingsWidget.h:159
Contains DLL export macros.
DtDe & myDe
Definition: DtDisplayUnitsSettingsWidget.h:195
QLabel * myObjectTypeLabel
Definition: DtDisplayUnitsSettingsWidget.h:160
std::map< std::string, std::set< QWidget * > > myDynamicWidgets
Definition: DtDisplayUnitsSettingsWidget.h:165
DisplayUnitType
Enumeration of the different display unit types.
Definition: DtDisplayUnitsSettingsRecord.h:162
std::map< makArchives::DtDisplayUnitsSettingsRecord::DisplayUnitType, std::set< QComboBox * > > myComboBoxesByDisplayUnitType
Definition: DtDisplayUnitsSettingsWidget.h:168
Interface for the settings widget to communicate with its logic.
Definition: DtDisplayUnitsSettingsInterface.h:27
QGridLayout * myMainLayout
Definition: DtDisplayUnitsSettingsWidget.h:157
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
Creator for the DtDisplayUnitsSettingsWidget.
Definition: DtDisplayUnitsSettingsWidget.h:211
QLabel * myDecimalPlacesLabel
Definition: DtDisplayUnitsSettingsWidget.h:163
unsigned int myNextAvailableApplicationRowIndex
Definition: DtDisplayUnitsSettingsWidget.h:204
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:203
This class displays the display units.
Definition: DtDisplayUnitsSettingsWidget.h:32
Interface for the display units settings dialog.

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)