mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-07-06 15:42:51 +02:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
c6cc34c73f | |||
ddc0e60517 | |||
48dcc6655b | |||
f0be0d6774 | |||
e5d5c06a0e | |||
5f18498138 | |||
4f73150e3e | |||
3fb81cf987 | |||
c6fb231186 | |||
d1ba44c9f4 | |||
7db6029de0 | |||
47c8f12b02 | |||
8cb56d3783 | |||
7e41069cde | |||
294d26a173 |
@ -1,4 +1,4 @@
|
||||
version: 8.6.{build}
|
||||
version: 8.8.{build}
|
||||
|
||||
configuration:
|
||||
- Release
|
||||
|
@ -4,7 +4,7 @@ GPXSee is a Qt-based GPS log file viewer and analyzer that supports all common G
|
||||
## Features
|
||||
* Opens GPX, TCX, FIT, KML, NMEA, IGC, CUP, SIGMA SLF, Suunto SML, LOC, GeoJSON, OziExplorer (PLT, RTE, WPT), Garmin GPI&CSV and geotagged JPEG files.
|
||||
* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS, QuadTiles).
|
||||
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases, Garmin IMG/GMAP & JNX maps, TwoNav RMaps, GeoTIFF images, BSB charts, KMZ maps, AlpineQuest maps).
|
||||
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases, Garmin IMG/GMAP & JNX maps, TwoNav RMaps, GeoTIFF images, BSB charts, KMZ maps, AlpineQuest maps, Locus/OsmAnd/RMaps SQLite maps).
|
||||
* Elevation, speed, heart rate, cadence, power, temperature and gear ratio/shifts graphs.
|
||||
* Support for DEM files (SRTM HGT).
|
||||
* Support for multiple tracks in one view.
|
||||
|
@ -3,7 +3,7 @@ unix:!macx {
|
||||
} else {
|
||||
TARGET = GPXSee
|
||||
}
|
||||
VERSION = 8.6
|
||||
VERSION = 8.8
|
||||
|
||||
QT += core \
|
||||
gui \
|
||||
|
@ -415,7 +415,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="380"/>
|
||||
<source>Do not show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ne montri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="384"/>
|
||||
@ -425,12 +425,12 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="388"/>
|
||||
<source>Date/time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Dato/tempo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="392"/>
|
||||
<source>Coordinates</source>
|
||||
<translation type="unfinished">Koordinatoj</translation>
|
||||
<translation>Koordinatoj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="398"/>
|
||||
@ -1053,7 +1053,7 @@
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="113"/>
|
||||
<source>Locus/OsmAnd/RMaps SQLite maps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Locus/OsmAnd/RMaps SQLite -mapoj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/map/maplist.cpp" line="117"/>
|
||||
|
@ -414,7 +414,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="380"/>
|
||||
<source>Do not show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Älä näytä</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="384"/>
|
||||
@ -424,7 +424,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="388"/>
|
||||
<source>Date/time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Pvm/aika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="392"/>
|
||||
|
@ -415,7 +415,7 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="380"/>
|
||||
<source>Do not show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Не показувати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="384"/>
|
||||
@ -425,12 +425,12 @@
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="388"/>
|
||||
<source>Date/time</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Дата/час</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="392"/>
|
||||
<source>Coordinates</source>
|
||||
<translation type="unfinished">Координати</translation>
|
||||
<translation>Координати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/GUI/gui.cpp" line="398"/>
|
||||
|
@ -9,7 +9,7 @@ Unicode true
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "8.6"
|
||||
!define VERSION "8.8"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}.exe"
|
||||
|
@ -9,7 +9,7 @@ Unicode true
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "8.6"
|
||||
!define VERSION "8.8"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}_x64.exe"
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <QWindow>
|
||||
#include <QScreen>
|
||||
#include <QStyle>
|
||||
#include <QTabBar>
|
||||
#include "common/programpaths.h"
|
||||
#include "data/data.h"
|
||||
#include "data/poi.h"
|
||||
@ -678,8 +679,9 @@ void GUI::createGraphTabs()
|
||||
_tabs.append(new TemperatureGraph(_graphTabWidget));
|
||||
_tabs.append(new GearRatioGraph(_graphTabWidget));
|
||||
|
||||
connect(_tabs.first(), SIGNAL(sliderPositionChanged(qreal)), _mapView,
|
||||
SLOT(setMarkerPosition(qreal)));
|
||||
for (int i = 0; i < _tabs.size(); i++)
|
||||
connect(_tabs.at(i), SIGNAL(sliderPositionChanged(qreal)), _mapView,
|
||||
SLOT(setMarkerPosition(qreal)));
|
||||
}
|
||||
|
||||
void GUI::createStatusBar()
|
||||
@ -879,7 +881,6 @@ void GUI::loadData(const Data &data)
|
||||
paths = _mapView->loadData(data);
|
||||
|
||||
GraphTab *gt = static_cast<GraphTab*>(_graphTabWidget->currentWidget());
|
||||
int index = _graphTabWidget->currentIndex();
|
||||
|
||||
for (int i = 0; i < paths.count(); i++) {
|
||||
PathItem *pi = paths.at(i);
|
||||
@ -889,8 +890,8 @@ void GUI::loadData(const Data &data)
|
||||
for (int j = 0; j < graphs.count(); j++)
|
||||
pi->addGraph(graphs.at(j).at(i));
|
||||
|
||||
if (gt && index >= 0) {
|
||||
pi->setGraph(index);
|
||||
if (gt) {
|
||||
pi->setGraph(_tabs.indexOf(gt));
|
||||
pi->setMarkerPosition(gt->sliderPosition());
|
||||
}
|
||||
}
|
||||
@ -1380,7 +1381,7 @@ void GUI::showToolbars(bool show)
|
||||
if (show) {
|
||||
Q_ASSERT(!_windowStates.isEmpty());
|
||||
restoreState(_windowStates.last());
|
||||
_windowStates.pop_back();
|
||||
_windowStates.removeLast();
|
||||
} else {
|
||||
_windowStates.append(saveState());
|
||||
removeToolBar(_fileToolBar);
|
||||
@ -1392,17 +1393,28 @@ void GUI::showToolbars(bool show)
|
||||
void GUI::showFullscreen(bool show)
|
||||
{
|
||||
if (show) {
|
||||
_windowGeometries.append(saveGeometry());
|
||||
_frameStyle = _mapView->frameStyle();
|
||||
statusBar()->hide();
|
||||
menuBar()->hide();
|
||||
showToolbars(false);
|
||||
_mapView->setFrameStyle(QFrame::NoFrame);
|
||||
_graphTabWidget->tabBar()->hide();
|
||||
#ifdef Q_OS_MAC
|
||||
_graphTabWidget->setDocumentMode(true);
|
||||
#endif // Q_OS_MAC
|
||||
showFullScreen();
|
||||
} else {
|
||||
Q_ASSERT(!_windowGeometries.isEmpty());
|
||||
_windowGeometries.removeLast();
|
||||
statusBar()->show();
|
||||
menuBar()->show();
|
||||
showToolbars(true);
|
||||
_mapView->setFrameStyle(_frameStyle);
|
||||
_graphTabWidget->tabBar()->show();
|
||||
#ifdef Q_OS_MAC
|
||||
_graphTabWidget->setDocumentMode(false);
|
||||
#endif // Q_OS_MAC
|
||||
showNormal();
|
||||
}
|
||||
}
|
||||
@ -1714,19 +1726,12 @@ void GUI::graphChanged(int index)
|
||||
if (index < 0)
|
||||
return;
|
||||
|
||||
_mapView->setGraph(index);
|
||||
|
||||
GraphTab *gt = static_cast<GraphTab*>(_graphTabWidget->widget(index));
|
||||
if (_lastGraphTab)
|
||||
disconnect(_lastGraphTab, SIGNAL(sliderPositionChanged(qreal)),
|
||||
_mapView, SLOT(setMarkerPosition(qreal)));
|
||||
|
||||
connect(gt, SIGNAL(sliderPositionChanged(qreal)), _mapView,
|
||||
SLOT(setMarkerPosition(qreal)));
|
||||
_mapView->setGraph(_tabs.indexOf(gt));
|
||||
|
||||
if (_lastGraphTab)
|
||||
gt->setSliderPosition(_lastGraphTab->sliderPosition());
|
||||
|
||||
_lastGraphTab = gt;
|
||||
}
|
||||
|
||||
@ -1957,14 +1962,13 @@ void GUI::writeSettings()
|
||||
settings.clear();
|
||||
|
||||
settings.beginGroup(WINDOW_SETTINGS_GROUP);
|
||||
if (size() != WINDOW_SIZE_DEFAULT)
|
||||
settings.setValue(WINDOW_SIZE_SETTING, size());
|
||||
if (pos() != WINDOW_POS_DEFAULT)
|
||||
settings.setValue(WINDOW_POS_SETTING, pos());
|
||||
if (_windowStates.isEmpty())
|
||||
settings.setValue(WINDOW_STATE_SETTING, saveState());
|
||||
else
|
||||
if (!_windowStates.isEmpty() && !_windowGeometries.isEmpty()) {
|
||||
settings.setValue(WINDOW_STATE_SETTING, _windowStates.first());
|
||||
settings.setValue(WINDOW_GEOMETRY_SETTING, _windowGeometries.first());
|
||||
} else {
|
||||
settings.setValue(WINDOW_STATE_SETTING, saveState());
|
||||
settings.setValue(WINDOW_GEOMETRY_SETTING, saveGeometry());
|
||||
}
|
||||
settings.endGroup();
|
||||
|
||||
settings.beginGroup(SETTINGS_SETTINGS_GROUP);
|
||||
@ -2212,14 +2216,12 @@ void GUI::readSettings()
|
||||
QSettings settings(qApp->applicationName(), qApp->applicationName());
|
||||
|
||||
settings.beginGroup(WINDOW_SETTINGS_GROUP);
|
||||
resize(settings.value(WINDOW_SIZE_SETTING, WINDOW_SIZE_DEFAULT).toSize());
|
||||
move(settings.value(WINDOW_POS_SETTING, WINDOW_POS_DEFAULT).toPoint());
|
||||
restoreGeometry(settings.value(WINDOW_GEOMETRY_SETTING).toByteArray());
|
||||
restoreState(settings.value(WINDOW_STATE_SETTING).toByteArray());
|
||||
settings.endGroup();
|
||||
|
||||
settings.beginGroup(SETTINGS_SETTINGS_GROUP);
|
||||
if (settings.value(TIME_TYPE_SETTING, TIME_TYPE_DEFAULT).toInt()
|
||||
== Moving)
|
||||
if (settings.value(TIME_TYPE_SETTING, TIME_TYPE_DEFAULT).toInt() == Moving)
|
||||
_movingTimeAction->trigger();
|
||||
else
|
||||
_totalTimeAction->trigger();
|
||||
@ -2394,8 +2396,8 @@ void GUI::readSettings()
|
||||
.toInt();
|
||||
int mri = settings.value(PNG_MARGIN_RIGHT_SETTING, PNG_MARGIN_RIGHT_DEFAULT)
|
||||
.toInt();
|
||||
int mbi = settings.value(PNG_MARGIN_BOTTOM_SETTING, PNG_MARGIN_BOTTOM_DEFAULT)
|
||||
.toInt();
|
||||
int mbi = settings.value(PNG_MARGIN_BOTTOM_SETTING,
|
||||
PNG_MARGIN_BOTTOM_DEFAULT).toInt();
|
||||
_pngExport.margins = QMargins(mli, mti, mri, mbi);
|
||||
_pngExport.antialiasing = settings.value(PNG_ANTIALIASING_SETTING,
|
||||
PNG_ANTIALIASING_DEFAULT).toBool();
|
||||
|
@ -242,6 +242,7 @@ private:
|
||||
GraphTab *_lastGraphTab;
|
||||
|
||||
QList<QByteArray> _windowStates;
|
||||
QList<QByteArray> _windowGeometries;
|
||||
int _frameStyle;
|
||||
|
||||
PDFExport _pdfExport;
|
||||
|
@ -304,7 +304,7 @@ void PathItem::setMarkerInfo(qreal pos)
|
||||
void PathItem::updateMarkerInfo()
|
||||
{
|
||||
qreal pos = _graph ? (_graph->graphType() == Time)
|
||||
? _graph->distanceAtTime(_markerDistance) : _markerDistance : NAN;
|
||||
? _graph->timeAtDistance(_markerDistance) : _markerDistance : NAN;
|
||||
setMarkerInfo(pos);
|
||||
}
|
||||
|
||||
|
@ -5,10 +5,7 @@
|
||||
(QLocale::system().measurementSystem() == QLocale::ImperialSystem)
|
||||
|
||||
#define WINDOW_SETTINGS_GROUP "Window"
|
||||
#define WINDOW_SIZE_SETTING "size"
|
||||
#define WINDOW_SIZE_DEFAULT QSize(600, 800)
|
||||
#define WINDOW_POS_SETTING "pos"
|
||||
#define WINDOW_POS_DEFAULT QPoint(10, 10)
|
||||
#define WINDOW_GEOMETRY_SETTING "geometry"
|
||||
#define WINDOW_STATE_SETTING "state"
|
||||
|
||||
#define SETTINGS_SETTINGS_GROUP "Settings"
|
||||
|
Reference in New Issue
Block a user