1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-11-28 05:34:47 +01:00

Added configurable segments usage

This commit is contained in:
Martin Tůma 2020-09-20 22:18:35 +02:00
parent d738ad7b5a
commit 50f483663c
6 changed files with 33 additions and 6 deletions

View File

@ -970,6 +970,7 @@ void GUI::openOptions()
SET_TRACK_OPTION(dataUseDEM, useDEM);
SET_TRACK_OPTION(showSecondaryElevation, showSecondaryElevation);
SET_TRACK_OPTION(showSecondarySpeed, showSecondarySpeed);
SET_TRACK_OPTION(useSegments, useSegments);
SET_ROUTE_OPTION(dataUseDEM, useDEM);
SET_ROUTE_OPTION(showSecondaryElevation, showSecondaryElevation);
@ -1884,6 +1885,8 @@ void GUI::writeSettings()
settings.setValue(TIME_ZONE_SETTING, QVariant::fromValue(
_options.timeZone));
#endif // ENABLE_TIMEZONES
if (_options.useSegments != USE_SEGMENTS_DEFAULT)
settings.setValue(USE_SEGMENTS_SETTING, _options.useSegments);
if (_options.poiRadius != POI_RADIUS_DEFAULT)
settings.setValue(POI_RADIUS_SETTING, _options.poiRadius);
if (_options.useOpenGL != USE_OPENGL_DEFAULT)
@ -2159,6 +2162,8 @@ void GUI::readSettings()
#ifdef ENABLE_TIMEZONES
_options.timeZone = settings.value(TIME_ZONE_SETTING).value<TimeZoneInfo>();
#endif // ENABLE_TIMEZONES
_options.useSegments = settings.value(USE_SEGMENTS_SETTING,
USE_SEGMENTS_DEFAULT).toBool();
_options.automaticPause = settings.value(AUTOMATIC_PAUSE_SETTING,
AUTOMATIC_PAUSE_DEFAULT).toBool();
_options.pauseInterval = settings.value(PAUSE_INTERVAL_SETTING,
@ -2250,6 +2255,7 @@ void GUI::readSettings()
Track::useDEM(_options.dataUseDEM);
Track::showSecondaryElevation(_options.showSecondaryElevation);
Track::showSecondarySpeed(_options.showSecondarySpeed);
Track::useSegments(_options.useSegments);
Route::useDEM(_options.dataUseDEM);
Route::showSecondaryElevation(_options.showSecondaryElevation);
Waypoint::useDEM(_options.dataUseDEM);

View File

@ -439,6 +439,9 @@ QWidget *OptionsDialog::createDataPage()
customZoneLayout->addWidget(_timeZone);
#endif // ENABLE_TIMEZONES
_useSegments = new QCheckBox(tr("Use segments"));
_useSegments->setChecked(_options->useSegments);
QWidget *sourceTab = new QWidget();
QVBoxLayout *sourceTabLayout = new QVBoxLayout();
@ -477,6 +480,7 @@ QWidget *OptionsDialog::createDataPage()
#ifdef ENABLE_TIMEZONES
formLayout->addRow(tr("Time zone:"), zoneOptions);
#endif // ENABLE_TIMEZONES
formLayout->addRow(_useSegments);
sourceTabLayout->addLayout(formLayout);
#else // Q_OS_MAC
@ -485,6 +489,7 @@ QWidget *OptionsDialog::createDataPage()
#ifdef ENABLE_TIMEZONES
QFormLayout *timeZoneLayout = new QFormLayout();
#endif // ENABLE_TIMEZONES
QFormLayout *segmentsLayout = new QFormLayout();
speedLayout->addWidget(_computedSpeed);
speedLayout->addWidget(_reportedSpeed);
@ -510,11 +515,14 @@ QWidget *OptionsDialog::createDataPage()
timeZoneBox->setLayout(timeZoneLayout);
#endif // ENABLE_TIMEZONES
segmentsLayout->addWidget(_useSegments);
sourceTabLayout->addWidget(speedBox);
sourceTabLayout->addWidget(elevationBox);
#ifdef ENABLE_TIMEZONES
sourceTabLayout->addWidget(timeZoneBox);
#endif // ENABLE_TIMEZONES
sourceTabLayout->addLayout(segmentsLayout);
#endif // Q_OS_MAC
sourceTabLayout->addStretch();
sourceTab->setLayout(sourceTabLayout);
@ -780,6 +788,7 @@ void OptionsDialog::accept()
_options->timeZone.setCustomZone(QTimeZone(_timeZone->currentText()
.toLatin1()));
#endif // ENABLE_TIMEZONES
_options->useSegments = _useSegments->isChecked();
qreal poiRadius = (_options->units == Imperial)
? _poiRadius->value() * MIINM : (_options->units == Nautical)

View File

@ -63,6 +63,7 @@ struct Options {
#ifdef ENABLE_TIMEZONES
TimeZoneInfo timeZone;
#endif // ENABLE_TIMEZONES
bool useSegments;
// POI
int poiRadius;
// System
@ -157,6 +158,7 @@ private:
QRadioButton *_customZone;
QComboBox *_timeZone;
#endif // ENABLE_TIMEZONES
QCheckBox *_useSegments;
// POI
QDoubleSpinBox *_poiRadius;
// System

View File

@ -150,6 +150,8 @@
#define SHOW_SECONDARY_SPEED_SETTING "showSecondarySpeed"
#define SHOW_SECONDARY_SPEED_DEFAULT false
#define TIME_ZONE_SETTING "timeZone"
#define USE_SEGMENTS_SETTING "useSegments"
#define USE_SEGMENTS_DEFAULT true
#define POI_RADIUS_SETTING "poiRadius"
#define POI_RADIUS_DEFAULT (int)(IMPERIAL_UNITS() ? MIINM : KMINM)
#define USE_OPENGL_SETTING "useOpenGL"

View File

@ -17,7 +17,7 @@ bool Track::_useReportedSpeed = false;
bool Track::_useDEM = false;
bool Track::_show2ndElevation = false;
bool Track::_show2ndSpeed = false;
bool Track::_useSegments = true;
static qreal avg(const QVector<qreal> &v)
{
@ -88,10 +88,18 @@ static GraphSegment filter(const GraphSegment &g, int window)
}
Track::Track(const TrackData &data) : _data(data), _pause(0)
Track::Track(const TrackData &data) : _pause(0)
{
qreal ds, dt;
if (_useSegments)
_data = data;
else {
_data.append(SegmentData());
for (int i = 0; i < data.size(); i++)
_data[0].append(data.at(i));
}
for (int i = 0; i < _data.size(); i++) {
const SegmentData &sd = _data.at(i);
_segments.append(Segment());

View File

@ -49,10 +49,9 @@ public:
{_outlierEliminate = eliminate;}
static void useReportedSpeed(bool use) {_useReportedSpeed = use;}
static void useDEM(bool use) {_useDEM = use;}
static void showSecondaryElevation(bool show)
{_show2ndElevation = show;}
static void showSecondarySpeed(bool show)
{_show2ndSpeed = show;}
static void showSecondaryElevation(bool show) {_show2ndElevation = show;}
static void showSecondarySpeed(bool show) {_show2ndSpeed = show;}
static void useSegments(bool use) {_useSegments = use;}
private:
struct Segment {
@ -87,6 +86,7 @@ private:
static bool _useDEM;
static bool _show2ndElevation;
static bool _show2ndSpeed;
static bool _useSegments;
};
#endif // TRACK_H