Qt Virtual Chart Table (QVCT)
CSettingsUnitsEditView.cpp
Go to the documentation of this file.
1 // INDENTING (emacs/vi): -*- mode:c++; tab-width:2; c-basic-offset:2; intent-tabs-mode:nil; -*- ex: set tabstop=2 expandtab:
2 
3 /*
4  * Qt Virtual Chart Table (QVCT)
5  * Copyright (C) 2012 Cedric Dufour <http://cedric.dufour.name>
6  * Author: Cedric Dufour <http://cedric.dufour.name>
7  *
8  * The Qt Virtual Chart Table (QVCT) is free software:
9  * you can redistribute it and/or modify it under the terms of the GNU General
10  * Public License as published by the Free Software Foundation, Version 3.
11  *
12  * The Qt Virtual Chart Table (QVCT) is distributed in the hope
13  * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
14  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  * See the GNU General Public License for more details.
17  */
18 
19 // QT
20 #include <QComboBox>
21 #include <QGridLayout>
22 #include <QLabel>
23 #include <QSpinBox>
24 #include <QStringList>
25 #include <QWidget>
26 
27 // QVCT
28 #include "QVCTRuntime.hpp"
30 
31 
32 //------------------------------------------------------------------------------
33 // CONSTRUCTORS / DESTRUCTOR
34 //------------------------------------------------------------------------------
35 
37  : QWidget( _pqParent )
38 {
40 }
41 
43 {
44  // Retrieve user settings
45  CSettings* __poSettings = QVCTRuntime::useSettings();
46 
47  // Create layout
48  QGridLayout* __pqGridLayout = new QGridLayout();
49 
50  // Add items
51  __pqGridLayout->addWidget( new QLabel( "<I>"+tr("Unit")+"</I>" ), 0, 1 );
52  __pqGridLayout->addWidget( new QLabel( "<I>"+tr("Precision")+"</I>" ), 0, 2 );
53  int __iRow = 0;
54 
55  // ... date unit/precision
56  __iRow++;
57  __pqGridLayout->addWidget( new QLabel( tr("Date")+":" ), __iRow, 0 );
58  QComboBox* __pqComboBoxUnitDate = new QComboBox();
59  __pqComboBoxUnitDate->addItems( QStringList( CUnitDate::symbols().values() ) );
60  __pqComboBoxUnitDate->setCurrentIndex( __pqComboBoxUnitDate->findText( CUnitDate::toSymbol( __poSettings->getUnitDate() ) ) );
61  __pqGridLayout->addWidget( __pqComboBoxUnitDate, __iRow, 1 );
62  connect( __pqComboBoxUnitDate, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitDate(const QString) ) );
63 
64  // ... time unit/precision
65  __iRow++;
66  __pqGridLayout->addWidget( new QLabel( tr("Time")+":" ), __iRow, 0 );
67  QComboBox* __pqComboBoxUnitTime = new QComboBox();
68  __pqComboBoxUnitTime->addItems( QStringList( CUnitTime::symbols().values() ) );
69  __pqComboBoxUnitTime->setCurrentIndex( __pqComboBoxUnitTime->findText( CUnitTime::toSymbol( __poSettings->getUnitTime() ) ) );
70  __pqGridLayout->addWidget( __pqComboBoxUnitTime, __iRow, 1 );
71  connect( __pqComboBoxUnitTime, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitTime(const QString) ) );
72  QSpinBox* __pqSpinBoxPrecisionTime = new QSpinBox();
73  __pqSpinBoxPrecisionTime->setRange( 0, 6 );
74  __pqSpinBoxPrecisionTime->setValue( __poSettings->getPrecisionTime() );
75  __pqGridLayout->addWidget( __pqSpinBoxPrecisionTime, __iRow, 2 );
76  connect( __pqSpinBoxPrecisionTime, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionTime(int) ) );
77 
78  // ... time difference unit/precision
79  __iRow++;
80  __pqGridLayout->addWidget( new QLabel( tr("Duration")+":" ), __iRow, 0 );
81  QComboBox* __pqComboBoxUnitTimeDelta = new QComboBox();
82  __pqComboBoxUnitTimeDelta->addItems( QStringList( CUnitTimeDelta::symbols().values() ) );
83  __pqComboBoxUnitTimeDelta->setCurrentIndex( __pqComboBoxUnitTimeDelta->findText( CUnitTimeDelta::toSymbol( __poSettings->getUnitTimeDelta() ) ) );
84  __pqGridLayout->addWidget( __pqComboBoxUnitTimeDelta, __iRow, 1 );
85  connect( __pqComboBoxUnitTimeDelta, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitTimeDelta(const QString) ) );
86  QSpinBox* __pqSpinBoxPrecisionTimeDelta = new QSpinBox();
87  __pqSpinBoxPrecisionTimeDelta->setRange( 0, 6 );
88  __pqSpinBoxPrecisionTimeDelta->setValue( __poSettings->getPrecisionTimeDelta() );
89  __pqGridLayout->addWidget( __pqSpinBoxPrecisionTimeDelta, __iRow, 2 );
90  connect( __pqSpinBoxPrecisionTimeDelta, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionTimeDelta(int) ) );
91 
92  // ... timezone unit/precision
93  __iRow++;
94  __pqGridLayout->addWidget( new QLabel( tr("Timezone")+":" ), __iRow, 0 );
95  QComboBox* __pqComboBoxUnitTimeZone = new QComboBox();
96  __pqComboBoxUnitTimeZone->addItems( QStringList( CUnitTimeZone::symbols().values() ) );
97  __pqComboBoxUnitTimeZone->setCurrentIndex( __pqComboBoxUnitTimeZone->findText( CUnitTimeZone::toSymbol( __poSettings->getUnitTimeZone() ) ) );
98  __pqGridLayout->addWidget( __pqComboBoxUnitTimeZone, __iRow, 1 );
99  connect( __pqComboBoxUnitTimeZone, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitTimeZone(const QString) ) );
100 
101  // ... position unit/precision
102  __iRow++;
103  __pqGridLayout->addWidget( new QLabel( tr("Position")+":" ), __iRow, 0 );
104  QComboBox* __pqComboBoxUnitPosition = new QComboBox();
105  __pqComboBoxUnitPosition->addItems( QStringList( CUnitPosition::symbols().values() ) );
106  __pqComboBoxUnitPosition->setCurrentIndex( __pqComboBoxUnitPosition->findText( CUnitPosition::toSymbol( __poSettings->getUnitPosition() ) ) );
107  __pqGridLayout->addWidget( __pqComboBoxUnitPosition, __iRow, 1 );
108  connect( __pqComboBoxUnitPosition, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitPosition(const QString) ) );
109  QSpinBox* __pqSpinBoxPrecisionPosition = new QSpinBox();
110  __pqSpinBoxPrecisionPosition->setRange( 0, 6 );
111  __pqSpinBoxPrecisionPosition->setValue( __poSettings->getPrecisionPosition() );
112  __pqGridLayout->addWidget( __pqSpinBoxPrecisionPosition, __iRow, 2 );
113  connect( __pqSpinBoxPrecisionPosition, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionPosition(int) ) );
114 
115  // ... bearing unit/precision
116  __iRow++;
117  __pqGridLayout->addWidget( new QLabel( tr("Bearing")+":" ), __iRow, 0 );
118  QComboBox* __pqComboBoxUnitBearing = new QComboBox();
119  __pqComboBoxUnitBearing->addItems( QStringList( CUnitBearing::symbols().values() ) );
120  __pqComboBoxUnitBearing->setCurrentIndex( __pqComboBoxUnitBearing->findText( CUnitBearing::toSymbol( __poSettings->getUnitBearing() ) ) );
121  __pqGridLayout->addWidget( __pqComboBoxUnitBearing, __iRow, 1 );
122  connect( __pqComboBoxUnitBearing, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitBearing(const QString) ) );
123  QSpinBox* __pqSpinBoxPrecisionBearing = new QSpinBox();
124  __pqSpinBoxPrecisionBearing->setRange( 0, 3 );
125  __pqSpinBoxPrecisionBearing->setValue( __poSettings->getPrecisionBearing() );
126  __pqGridLayout->addWidget( __pqSpinBoxPrecisionBearing, __iRow, 2 );
127  connect( __pqSpinBoxPrecisionBearing, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionBearing(int) ) );
128 
129  // ... distance unit/precision
130  __iRow++;
131  __pqGridLayout->addWidget( new QLabel( tr("Distance")+":" ), __iRow, 0 );
132  QComboBox* __pqComboBoxUnitDistance = new QComboBox();
133  __pqComboBoxUnitDistance->addItems( QStringList( CUnitDistance::symbols().values() ) );
134  __pqComboBoxUnitDistance->setCurrentIndex( __pqComboBoxUnitDistance->findText( CUnitDistance::toSymbol( __poSettings->getUnitDistance() ) ) );
135  __pqGridLayout->addWidget( __pqComboBoxUnitDistance, __iRow, 1 );
136  connect( __pqComboBoxUnitDistance, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitDistance(const QString) ) );
137  QSpinBox* __pqSpinBoxPrecisionDistance = new QSpinBox();
138  __pqSpinBoxPrecisionDistance->setRange( 0, 3 );
139  __pqSpinBoxPrecisionDistance->setValue( __poSettings->getPrecisionDistance() );
140  __pqGridLayout->addWidget( __pqSpinBoxPrecisionDistance, __iRow, 2 );
141  connect( __pqSpinBoxPrecisionDistance, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionDistance(int) ) );
142 
143  // ... speed unit/precision
144  __iRow++;
145  __pqGridLayout->addWidget( new QLabel( tr("Speed (horizontal)")+":" ), __iRow, 0 );
146  QComboBox* __pqComboBoxUnitSpeed = new QComboBox();
147  __pqComboBoxUnitSpeed->addItems( QStringList( CUnitSpeed::symbols().values() ) );
148  __pqComboBoxUnitSpeed->setCurrentIndex( __pqComboBoxUnitSpeed->findText( CUnitSpeed::toSymbol( __poSettings->getUnitSpeed() ) ) );
149  __pqGridLayout->addWidget( __pqComboBoxUnitSpeed, __iRow, 1 );
150  connect( __pqComboBoxUnitSpeed, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitSpeed(const QString) ) );
151  QSpinBox* __pqSpinBoxPrecisionSpeed = new QSpinBox();
152  __pqSpinBoxPrecisionSpeed->setRange( 0, 3 );
153  __pqSpinBoxPrecisionSpeed->setValue( __poSettings->getPrecisionSpeed() );
154  __pqGridLayout->addWidget( __pqSpinBoxPrecisionSpeed, __iRow, 2 );
155  connect( __pqSpinBoxPrecisionSpeed, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionSpeed(int) ) );
156 
157  // ... elevation unit/precision
158  __iRow++;
159  __pqGridLayout->addWidget( new QLabel( tr("Elevation")+":" ), __iRow, 0 );
160  QComboBox* __pqComboBoxUnitElevation = new QComboBox();
161  __pqComboBoxUnitElevation->addItems( QStringList( CUnitElevation::symbols().values() ) );
162  __pqComboBoxUnitElevation->setCurrentIndex( __pqComboBoxUnitElevation->findText( CUnitElevation::toSymbol( __poSettings->getUnitElevation() ) ) );
163  __pqGridLayout->addWidget( __pqComboBoxUnitElevation, __iRow, 1 );
164  connect( __pqComboBoxUnitElevation, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitElevation(const QString) ) );
165  QSpinBox* __pqSpinBoxPrecisionElevation = new QSpinBox();
166  __pqSpinBoxPrecisionElevation->setRange( 0, 3 );
167  __pqSpinBoxPrecisionElevation->setValue( __poSettings->getPrecisionElevation() );
168  __pqGridLayout->addWidget( __pqSpinBoxPrecisionElevation, __iRow, 2 );
169  connect( __pqSpinBoxPrecisionElevation, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionElevation(int) ) );
170 
171  // ... vertical speed unit/precision
172  __iRow++;
173  __pqGridLayout->addWidget( new QLabel( tr("Speed (vertical)")+":" ), __iRow, 0 );
174  QComboBox* __pqComboBoxUnitSpeedVertical = new QComboBox();
175  __pqComboBoxUnitSpeedVertical->addItems( QStringList( CUnitSpeedVertical::symbols().values() ) );
176  __pqComboBoxUnitSpeedVertical->setCurrentIndex( __pqComboBoxUnitSpeedVertical->findText( CUnitSpeedVertical::toSymbol( __poSettings->getUnitSpeedVertical() ) ) );
177  __pqGridLayout->addWidget( __pqComboBoxUnitSpeedVertical, __iRow, 1 );
178  connect( __pqComboBoxUnitSpeedVertical, SIGNAL( currentIndexChanged(const QString) ), __poSettings, SLOT( slotUnitSpeedVertical(const QString) ) );
179  QSpinBox* __pqSpinBoxPrecisionSpeedVertical = new QSpinBox();
180  __pqSpinBoxPrecisionSpeedVertical->setRange( 0, 3 );
181  __pqSpinBoxPrecisionSpeedVertical->setValue( __poSettings->getPrecisionSpeedVertical() );
182  __pqGridLayout->addWidget( __pqSpinBoxPrecisionSpeedVertical, __iRow, 2 );
183  connect( __pqSpinBoxPrecisionSpeedVertical, SIGNAL( valueChanged(int) ), __poSettings, SLOT( slotPrecisionSpeedVertical(int) ) );
184 
185  // Set the layout
186  __iRow++;
187  __pqGridLayout->addItem( new QSpacerItem( 0, this->height() ), __iRow, 0, 3 );
188  QWidget::setLayout( __pqGridLayout );
189 }
CSettingsUnitsEditView(QWidget *_pqParent=0)
void constructLayout()
Constructs the layout of the user interface.
[UI] Container for the application's settings
Definition: CSettings.hpp:51
int getPrecisionDistance()
[Precision] Returns the distance decimal precision
Definition: CSettings.hpp:368
CUnitDate::EUnit getUnitDate()
[Unit] Returns the date format/unit
Definition: CSettings.hpp:339
CUnitDistance::EUnit getUnitDistance()
[Unit] Returns the distance format/unit
Definition: CSettings.hpp:351
int getPrecisionSpeedVertical()
[Precision] Returns the vertical speed decimal precision
Definition: CSettings.hpp:374
CUnitTime::EUnit getUnitTime()
[Unit] Returns the time format/unit
Definition: CSettings.hpp:341
CUnitSpeedVertical::EUnit getUnitSpeedVertical()
[Unit] Returns the vertical speed format/unit
Definition: CSettings.hpp:357
CUnitElevation::EUnit getUnitElevation()
[Unit] Returns the elevation format/unit
Definition: CSettings.hpp:355
int getPrecisionTimeDelta()
[Precision] Returns the time difference decimal precision
Definition: CSettings.hpp:362
CUnitTimeDelta::EUnit getUnitTimeDelta()
[Unit] Returns the time difference format/unit
Definition: CSettings.hpp:343
int getPrecisionTime()
[Precision] Returns the time decimal precision
Definition: CSettings.hpp:360
CUnitPosition::EUnit getUnitPosition()
[Unit] Returns the position format/unit
Definition: CSettings.hpp:347
CUnitBearing::EUnit getUnitBearing()
[Unit] Returns the bearing format/unit
Definition: CSettings.hpp:349
int getPrecisionSpeed()
[Precision] Returns the speed decimal precision
Definition: CSettings.hpp:370
CUnitTimeZone::EUnit getUnitTimeZone()
[Unit] Returns the timezone format/unit
Definition: CSettings.hpp:345
int getPrecisionPosition()
[Precision] Returns the position decimal precision
Definition: CSettings.hpp:364
int getPrecisionElevation()
[Precision] Returns the elevation decimal precision
Definition: CSettings.hpp:372
CUnitSpeed::EUnit getUnitSpeed()
[Unit] Returns the speed format/unit
Definition: CSettings.hpp:353
int getPrecisionBearing()
[Precision] Returns the bearing decimal precision
Definition: CSettings.hpp:366
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
Definition: CUnitDate.cpp:41
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
Definition: CUnitDate.cpp:46
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
Definition: CUnitSpeed.cpp:36
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
Definition: CUnitSpeed.cpp:41
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
static QString toSymbol(EUnit _eUnit)
Returns the human-readable symbol corresponding to the given format/unit ID.
Definition: CUnitTime.cpp:46
static const QMap< EUnit, QString > & symbols()
Returns the list of supported human-readable format/unit symbols.
Definition: CUnitTime.cpp:41
static CSettings * useSettings()