Compare commits
293 Commits
Author | SHA1 | Date | |
---|---|---|---|
9f0fcdc13e | |||
5b21d550af | |||
6f4259298b | |||
2c1a9f88c4 | |||
48438f9b4d | |||
9b7651bad4 | |||
b6ef1d36d6 | |||
d3cbdb8b92 | |||
a98e9a9784 | |||
3c6ce2dde2 | |||
4c88414677 | |||
ac5476868d | |||
bf6d7616ba | |||
9842214bb6 | |||
b6e9400392 | |||
c1a217847f | |||
409ce889cd | |||
09242841e3 | |||
a299207e5d | |||
efc773d04b | |||
16c95334a0 | |||
49ccb508a0 | |||
9c6c574443 | |||
f762013e1e | |||
f6b1344ee2 | |||
9f3129f899 | |||
f05ff372e7 | |||
c0adabe3f1 | |||
4a612f12bb | |||
8f4ce8d38c | |||
b73072795a | |||
57d3d9c965 | |||
d97a8c03a7 | |||
58b44d33a7 | |||
5c6f405795 | |||
156467a261 | |||
f4d5f8d057 | |||
b3655f6a1f | |||
f819840aff | |||
46bf281644 | |||
49470f22b2 | |||
078b272828 | |||
ed03e31949 | |||
605b09c195 | |||
ce41409713 | |||
0898953674 | |||
fd0401a4a6 | |||
869fdf5982 | |||
7fe518966c | |||
e568806366 | |||
aa32415adb | |||
c1a64d2c0b | |||
31bbdba548 | |||
0e4a5abc2b | |||
7a2f6b96a9 | |||
24c03fc15b | |||
f9af06267a | |||
2f9751672e | |||
140e975524 | |||
e6a39b5146 | |||
937251fbdc | |||
6e92557806 | |||
a3625ac89d | |||
a7e02bdc8b | |||
ed4e201b08 | |||
06901d8d7a | |||
698f14c835 | |||
f8806417d4 | |||
52e8eb1f6e | |||
0483d393ac | |||
5aa21380cb | |||
254deae04a | |||
076a091a5b | |||
bb7787b001 | |||
bc6d48d1fe | |||
9bae94f30d | |||
351fc0309a | |||
d8116c7f5d | |||
083dd39bef | |||
bd64ca4f57 | |||
b382a5e674 | |||
20687a1df7 | |||
bb82750e9b | |||
51e6058960 | |||
db3f111815 | |||
219311577f | |||
26d4770f47 | |||
db0d9ceffb | |||
fc9b01480c | |||
cd8f415615 | |||
824393879b | |||
f79f555d6f | |||
13e9a50d59 | |||
f1667e70b5 | |||
1ce347230b | |||
d4f3e293df | |||
7492b74aed | |||
71dbb176bb | |||
301107add1 | |||
60ae4c0268 | |||
bd76e508ae | |||
e9f7642cde | |||
5c73cb55cb | |||
c39298000d | |||
e17d7d4a8f | |||
65b74b146d | |||
b937b9f2cb | |||
d7fe0fa9bf | |||
9657104f50 | |||
5a692c71a8 | |||
e8ede272ae | |||
39a8a144dd | |||
02700a485d | |||
99ea19e35a | |||
a6bb0f1520 | |||
0a74684713 | |||
332a4d9393 | |||
db98f381b5 | |||
31a600638f | |||
2ff18bc373 | |||
c2e301f4e8 | |||
a25303fe98 | |||
2bee8656a4 | |||
4a31f6f76d | |||
eaef588443 | |||
87a808265e | |||
a39cef2abd | |||
960827e92b | |||
7de1b84f77 | |||
4b1fa13429 | |||
f10857eddc | |||
781fc22113 | |||
9ced0fd3a7 | |||
3e71d1b785 | |||
491bf5614b | |||
fc873719e1 | |||
99c3edddfd | |||
fde8ad620b | |||
7855c69729 | |||
8749be9103 | |||
7432459c93 | |||
6f9f49a435 | |||
eda5046518 | |||
b867ce9a7f | |||
cfdb12c4ae | |||
9436f98023 | |||
c89137204e | |||
905f80b1ce | |||
e707cc30ad | |||
4ef1fa77f8 | |||
df104b16c6 | |||
8f9049a8d4 | |||
d483cd35cd | |||
c2b09df118 | |||
9957e1834e | |||
7e537d819a | |||
8d1be76043 | |||
b68567f000 | |||
09a5f57109 | |||
ca8ff6c7ee | |||
e9c15ef956 | |||
e39f0881ab | |||
6f05d38d31 | |||
9cb91a35ef | |||
bb0073d7e7 | |||
3291ea86ef | |||
97d646bb19 | |||
672df4255e | |||
3fcf04daf7 | |||
3daab92b84 | |||
89f384feed | |||
fc555fd7d0 | |||
d58322b412 | |||
70222f4ae2 | |||
fe1aaa73a0 | |||
57741f8c2d | |||
6eb3a4f7de | |||
295a89b3cc | |||
dc3fdc4c3b | |||
3867b723a9 | |||
d7fc400d73 | |||
f8f6859e7d | |||
2501f834c8 | |||
3f4b70ee48 | |||
384d20b1a5 | |||
b4a06057f8 | |||
9f14eb7e70 | |||
dcf1c686e5 | |||
a8d183639e | |||
d9e025a18c | |||
0a9077545b | |||
bbc1d43290 | |||
524d72ce3c | |||
9f74bbb27a | |||
ce34d449c2 | |||
21dbd3958d | |||
92ac7c0c10 | |||
1f71b3a3b2 | |||
27886ea96a | |||
3176271955 | |||
d4b46a4bb6 | |||
3b2d4dcd31 | |||
de196e8281 | |||
f376f7139b | |||
9fe10f10b8 | |||
cdc9e51696 | |||
975d9816f4 | |||
187a909b4f | |||
1e6a49673e | |||
3b7905fe8c | |||
f70a4536b2 | |||
b989d0e086 | |||
c3deab5369 | |||
f49e0223b2 | |||
96940c28d4 | |||
e9ebc999fd | |||
c724bf134c | |||
203f44b75a | |||
d0edd825cf | |||
e3013bf815 | |||
d4fd60b1d8 | |||
ba2347f363 | |||
93a912a34a | |||
fb779840ce | |||
dd183edd8d | |||
679bae0d67 | |||
8fb4acc4c2 | |||
6194519b18 | |||
3ce3de119b | |||
872ecdfa58 | |||
121a262ea1 | |||
06c9fbd849 | |||
aa928d96e0 | |||
004e9bfef3 | |||
34de55cf0c | |||
c0e458a437 | |||
33739acafe | |||
fe4eed8aa2 | |||
f5ca757348 | |||
476f26752f | |||
588859ca3a | |||
cc8d237786 | |||
5dde297210 | |||
d1469290cf | |||
51d4284ebe | |||
531eb256f1 | |||
79388aa753 | |||
2980299a2a | |||
796e61ada4 | |||
90473300e0 | |||
5706cdcfa1 | |||
d794ee4b22 | |||
262ee5bb5f | |||
5547cf668e | |||
dd9e42ad27 | |||
e192116191 | |||
67c8602efd | |||
a324698a67 | |||
23bf3397b8 | |||
db2d0b63e8 | |||
e7cfeb0d1a | |||
366e84c9fc | |||
3424b3e265 | |||
cb80389d74 | |||
40276e8b95 | |||
106904a763 | |||
e21d89e998 | |||
a432ff3461 | |||
201256d882 | |||
b2a34bd10f | |||
63cf4c039a | |||
ca97ca392e | |||
ec5ad67a3e | |||
569ded1e25 | |||
8e713a1f06 | |||
f07173ab22 | |||
cf6d27b1f5 | |||
fc18283172 | |||
1cd726691e | |||
24835db090 | |||
2352827d9b | |||
c5a060ed6b | |||
026cc68bf2 | |||
ec247d5d1d | |||
815cb6cb91 | |||
ca7016176f | |||
2c816a509b | |||
58e752a022 | |||
7d412a274d | |||
6bee2a46f1 | |||
eeab6a399e | |||
9e04bf0fa7 | |||
2842c6c125 |
@ -1,14 +1,14 @@
|
|||||||
version: 5.12.{build}
|
version: 7.0.{build}
|
||||||
configuration: Release
|
configuration: Release
|
||||||
platform: Any CPU
|
platform: Any CPU
|
||||||
environment:
|
environment:
|
||||||
NSISDIR: C:\Program Files (x86)\NSIS
|
NSISDIR: C:\Program Files (x86)\NSIS
|
||||||
matrix:
|
matrix:
|
||||||
- QTDIR: C:\Qt\5.9\msvc2015
|
- QTDIR: C:\Qt\5.11\msvc2015
|
||||||
PLATFORM: x86
|
PLATFORM: x86
|
||||||
NSI: gpxsee.nsi
|
NSI: gpxsee.nsi
|
||||||
OPENSSLDIR: C:\OpenSSL-Win32\bin
|
OPENSSLDIR: C:\OpenSSL-Win32\bin
|
||||||
- QTDIR: C:\Qt\5.9\msvc2015_64
|
- QTDIR: C:\Qt\5.11\msvc2015_64
|
||||||
PLATFORM: x86_amd64
|
PLATFORM: x86_amd64
|
||||||
NSI: gpxsee64.nsi
|
NSI: gpxsee64.nsi
|
||||||
OPENSSLDIR: C:\OpenSSL-Win64\bin
|
OPENSSLDIR: C:\OpenSSL-Win64\bin
|
||||||
@ -34,6 +34,8 @@ build_script:
|
|||||||
|
|
||||||
copy pkg\%NSI% installer
|
copy pkg\%NSI% installer
|
||||||
|
|
||||||
|
copy pkg\macros.nsh installer
|
||||||
|
|
||||||
xcopy pkg\csv installer\csv /i
|
xcopy pkg\csv installer\csv /i
|
||||||
|
|
||||||
xcopy pkg\maps installer\maps /i
|
xcopy pkg\maps installer\maps /i
|
||||||
|
24
README.md
@ -1,25 +1,31 @@
|
|||||||
# GPXSee
|
# GPXSee
|
||||||
GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX, TCX,
|
GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX, TCX,
|
||||||
KML, FIT, IGC, NMEA and OziExplorer files.
|
KML, FIT, IGC, NMEA, SLF, LOC and OziExplorer files.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
* User-definable online maps (OSM/Google tiles, WMTS, WMS).
|
* User-definable online maps (OpenStreetMap/Google tiles, WMTS, WMS, TMS).
|
||||||
* Offline maps (OziExplorer maps, TrekBuddy maps/atlases, GeoTIFF images).
|
* Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases, Garmin JNX maps, GeoTIFF images).
|
||||||
* Elevation, speed, heart rate, cadence, power and temperature graphs.
|
* Elevation, speed, heart rate, cadence, power, temperature and gear ratio/shifts graphs.
|
||||||
* Support for multiple tracks in one view.
|
* Support for multiple tracks in one view.
|
||||||
* Support for POI files.
|
* Support for POI files.
|
||||||
* Print/export to PDF.
|
* Print/export to PDF.
|
||||||
* Full-screen mode.
|
* Full-screen mode.
|
||||||
|
* HiDPI/Retina displays & maps support.
|
||||||
* Native GUI for Windows, Mac OS X and Linux.
|
* Native GUI for Windows, Mac OS X and Linux.
|
||||||
* Opens GPX, TCX, FIT, KML, IGC, NMEA, OziExplorer (PLT, RTE, WPT) and Garmin CSV files.
|
* Opens GPX, TCX, FIT, KML, IGC, NMEA, SLF, LOC, OziExplorer (PLT, RTE, WPT) and Garmin CSV files.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
Build requirements:
|
||||||
|
* Qt 4.8 or QT 5.x (Qt >= 5.10.1 recommended for all features)
|
||||||
|
* C++03 compiler (tested: msvc2015, gcc >= 4.8, clang/Apple LLVM version 8.1.0)
|
||||||
|
|
||||||
|
Build steps:
|
||||||
```shell
|
```shell
|
||||||
lrelease gpxsee.pro
|
lrelease gpxsee.pro
|
||||||
qmake gpxsee.pro
|
qmake gpxsee.pro
|
||||||
make
|
make # nmake on windows
|
||||||
```
|
```
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
@ -31,3 +37,9 @@ make
|
|||||||
|
|
||||||
## Homepage
|
## Homepage
|
||||||
http://www.gpxsee.org
|
http://www.gpxsee.org
|
||||||
|
|
||||||
|
## Maps
|
||||||
|
[GPXSee maps repository](https://github.com/tumic0/GPXSee-maps)
|
||||||
|
|
||||||
|
## Translations
|
||||||
|
GPXSee uses [Weblate](https://hosted.weblate.org/projects/gpxsee/translations/) for translations.
|
||||||
|
96
gpxsee.pro
@ -1,21 +1,30 @@
|
|||||||
TARGET = GPXSee
|
TARGET = GPXSee
|
||||||
VERSION = 5.12
|
VERSION = 7.0
|
||||||
|
|
||||||
QT += core \
|
QT += core \
|
||||||
gui \
|
gui \
|
||||||
network
|
network \
|
||||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
sql \
|
||||||
greaterThan(QT_MAJOR_VERSION, 4): QT += printsupport
|
concurrent
|
||||||
lessThan(QT_VERSION, 5.4): QT += opengl
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||||
macx: QT += opengl
|
QT += widgets
|
||||||
|
QT += printsupport
|
||||||
|
}
|
||||||
|
lessThan(QT_MAJOR_VERSION, 5) {QT += opengl}
|
||||||
|
equals(QT_MAJOR_VERSION, 5) : lessThan(QT_MINOR_VERSION, 4) {QT += opengl}
|
||||||
|
|
||||||
INCLUDEPATH += ./src
|
INCLUDEPATH += ./src
|
||||||
HEADERS += src/config.h \
|
HEADERS += src/common/config.h \
|
||||||
src/common/staticassert.h \
|
src/common/staticassert.h \
|
||||||
src/common/coordinates.h \
|
src/common/coordinates.h \
|
||||||
src/common/range.h \
|
src/common/range.h \
|
||||||
src/common/rectc.h \
|
src/common/rectc.h \
|
||||||
src/common/wgs84.h \
|
src/common/wgs84.h \
|
||||||
src/common/str2int.h \
|
src/common/util.h \
|
||||||
src/common/rtree.h \
|
src/common/rtree.h \
|
||||||
|
src/common/kv.h \
|
||||||
|
src/common/greatcircle.h \
|
||||||
|
src/common/programpaths.h \
|
||||||
src/GUI/app.h \
|
src/GUI/app.h \
|
||||||
src/GUI/icons.h \
|
src/GUI/icons.h \
|
||||||
src/GUI/gui.h \
|
src/GUI/gui.h \
|
||||||
@ -49,6 +58,7 @@ HEADERS += src/config.h \
|
|||||||
src/GUI/format.h \
|
src/GUI/format.h \
|
||||||
src/GUI/cadencegraph.h \
|
src/GUI/cadencegraph.h \
|
||||||
src/GUI/powergraph.h \
|
src/GUI/powergraph.h \
|
||||||
|
src/GUI/gearratiograph.h \
|
||||||
src/GUI/optionsdialog.h \
|
src/GUI/optionsdialog.h \
|
||||||
src/GUI/colorbox.h \
|
src/GUI/colorbox.h \
|
||||||
src/GUI/stylecombobox.h \
|
src/GUI/stylecombobox.h \
|
||||||
@ -61,12 +71,13 @@ HEADERS += src/config.h \
|
|||||||
src/GUI/temperaturegraphitem.h \
|
src/GUI/temperaturegraphitem.h \
|
||||||
src/GUI/cadencegraphitem.h \
|
src/GUI/cadencegraphitem.h \
|
||||||
src/GUI/powergraphitem.h \
|
src/GUI/powergraphitem.h \
|
||||||
|
src/GUI/gearratiographitem.h \
|
||||||
src/GUI/oddspinbox.h \
|
src/GUI/oddspinbox.h \
|
||||||
src/GUI/settings.h \
|
src/GUI/settings.h \
|
||||||
src/GUI/nicenum.h \
|
|
||||||
src/GUI/cpuarch.h \
|
src/GUI/cpuarch.h \
|
||||||
src/GUI/searchpointer.h \
|
src/GUI/searchpointer.h \
|
||||||
src/GUI/mapview.h \
|
src/GUI/mapview.h \
|
||||||
|
src/GUI/font.h \
|
||||||
src/map/projection.h \
|
src/map/projection.h \
|
||||||
src/map/ellipsoid.h \
|
src/map/ellipsoid.h \
|
||||||
src/map/datum.h \
|
src/map/datum.h \
|
||||||
@ -83,7 +94,7 @@ HEADERS += src/config.h \
|
|||||||
src/map/downloader.h \
|
src/map/downloader.h \
|
||||||
src/map/tile.h \
|
src/map/tile.h \
|
||||||
src/map/emptymap.h \
|
src/map/emptymap.h \
|
||||||
src/map/offlinemap.h \
|
src/map/ozimap.h \
|
||||||
src/map/tar.h \
|
src/map/tar.h \
|
||||||
src/map/ozf.h \
|
src/map/ozf.h \
|
||||||
src/map/atlas.h \
|
src/map/atlas.h \
|
||||||
@ -107,6 +118,15 @@ HEADERS += src/config.h \
|
|||||||
src/map/crs.h \
|
src/map/crs.h \
|
||||||
src/map/coordinatesystem.h \
|
src/map/coordinatesystem.h \
|
||||||
src/map/pointd.h \
|
src/map/pointd.h \
|
||||||
|
src/map/rectd.h \
|
||||||
|
src/map/geocentric.h \
|
||||||
|
src/map/mercator.h \
|
||||||
|
src/map/jnxmap.h \
|
||||||
|
src/map/krovak.h \
|
||||||
|
src/map/geotiffmap.h \
|
||||||
|
src/map/image.h \
|
||||||
|
src/map/mbtilesmap.h \
|
||||||
|
src/map/osm.h \
|
||||||
src/data/graph.h \
|
src/data/graph.h \
|
||||||
src/data/poi.h \
|
src/data/poi.h \
|
||||||
src/data/waypoint.h \
|
src/data/waypoint.h \
|
||||||
@ -126,15 +146,15 @@ HEADERS += src/config.h \
|
|||||||
src/data/igcparser.h \
|
src/data/igcparser.h \
|
||||||
src/data/nmeaparser.h \
|
src/data/nmeaparser.h \
|
||||||
src/data/oziparsers.h \
|
src/data/oziparsers.h \
|
||||||
src/map/rectd.h \
|
src/data/locparser.h \
|
||||||
src/map/geocentric.h \
|
src/data/slfparser.h
|
||||||
src/map/mercator.h \
|
|
||||||
src/map/jnxmap.h
|
|
||||||
SOURCES += src/main.cpp \
|
SOURCES += src/main.cpp \
|
||||||
src/common/coordinates.cpp \
|
src/common/coordinates.cpp \
|
||||||
src/common/rectc.cpp \
|
src/common/rectc.cpp \
|
||||||
src/common/range.cpp \
|
src/common/range.cpp \
|
||||||
src/common/str2int.cpp \
|
src/common/util.cpp \
|
||||||
|
src/common/greatcircle.cpp \
|
||||||
|
src/common/programpaths.cpp \
|
||||||
src/GUI/app.cpp \
|
src/GUI/app.cpp \
|
||||||
src/GUI/gui.cpp \
|
src/GUI/gui.cpp \
|
||||||
src/GUI/axisitem.cpp \
|
src/GUI/axisitem.cpp \
|
||||||
@ -163,6 +183,7 @@ SOURCES += src/main.cpp \
|
|||||||
src/GUI/format.cpp \
|
src/GUI/format.cpp \
|
||||||
src/GUI/cadencegraph.cpp \
|
src/GUI/cadencegraph.cpp \
|
||||||
src/GUI/powergraph.cpp \
|
src/GUI/powergraph.cpp \
|
||||||
|
src/GUI/gearratiograph.cpp \
|
||||||
src/GUI/optionsdialog.cpp \
|
src/GUI/optionsdialog.cpp \
|
||||||
src/GUI/colorbox.cpp \
|
src/GUI/colorbox.cpp \
|
||||||
src/GUI/stylecombobox.cpp \
|
src/GUI/stylecombobox.cpp \
|
||||||
@ -174,13 +195,13 @@ SOURCES += src/main.cpp \
|
|||||||
src/GUI/temperaturegraphitem.cpp \
|
src/GUI/temperaturegraphitem.cpp \
|
||||||
src/GUI/cadencegraphitem.cpp \
|
src/GUI/cadencegraphitem.cpp \
|
||||||
src/GUI/powergraphitem.cpp \
|
src/GUI/powergraphitem.cpp \
|
||||||
src/GUI/nicenum.cpp \
|
src/GUI/gearratiographitem.cpp \
|
||||||
src/GUI/mapview.cpp \
|
src/GUI/mapview.cpp \
|
||||||
src/map/maplist.cpp \
|
src/map/maplist.cpp \
|
||||||
src/map/onlinemap.cpp \
|
src/map/onlinemap.cpp \
|
||||||
src/map/downloader.cpp \
|
src/map/downloader.cpp \
|
||||||
src/map/emptymap.cpp \
|
src/map/emptymap.cpp \
|
||||||
src/map/offlinemap.cpp \
|
src/map/ozimap.cpp \
|
||||||
src/map/tar.cpp \
|
src/map/tar.cpp \
|
||||||
src/map/atlas.cpp \
|
src/map/atlas.cpp \
|
||||||
src/map/ozf.cpp \
|
src/map/ozf.cpp \
|
||||||
@ -211,6 +232,15 @@ SOURCES += src/main.cpp \
|
|||||||
src/map/wms.cpp \
|
src/map/wms.cpp \
|
||||||
src/map/crs.cpp \
|
src/map/crs.cpp \
|
||||||
src/map/coordinatesystem.cpp \
|
src/map/coordinatesystem.cpp \
|
||||||
|
src/map/geocentric.cpp \
|
||||||
|
src/map/mercator.cpp \
|
||||||
|
src/map/jnxmap.cpp \
|
||||||
|
src/map/krovak.cpp \
|
||||||
|
src/map/map.cpp \
|
||||||
|
src/map/geotiffmap.cpp \
|
||||||
|
src/map/image.cpp \
|
||||||
|
src/map/mbtilesmap.cpp \
|
||||||
|
src/map/osm.cpp \
|
||||||
src/data/data.cpp \
|
src/data/data.cpp \
|
||||||
src/data/poi.cpp \
|
src/data/poi.cpp \
|
||||||
src/data/track.cpp \
|
src/data/track.cpp \
|
||||||
@ -224,28 +254,36 @@ SOURCES += src/main.cpp \
|
|||||||
src/data/igcparser.cpp \
|
src/data/igcparser.cpp \
|
||||||
src/data/nmeaparser.cpp \
|
src/data/nmeaparser.cpp \
|
||||||
src/data/oziparsers.cpp \
|
src/data/oziparsers.cpp \
|
||||||
src/map/geocentric.cpp \
|
src/data/locparser.cpp \
|
||||||
src/map/mercator.cpp \
|
src/data/slfparser.cpp
|
||||||
src/map/jnxmap.cpp
|
|
||||||
RESOURCES += gpxsee.qrc
|
RESOURCES += gpxsee.qrc
|
||||||
TRANSLATIONS = lang/gpxsee_cs.ts \
|
TRANSLATIONS = lang/gpxsee_en.ts \
|
||||||
|
lang/gpxsee_cs.ts \
|
||||||
lang/gpxsee_sv.ts \
|
lang/gpxsee_sv.ts \
|
||||||
lang/gpxsee_de.ts \
|
lang/gpxsee_de.ts \
|
||||||
lang/gpxsee_ru.ts \
|
lang/gpxsee_ru.ts \
|
||||||
lang/gpxsee_fi.ts \
|
lang/gpxsee_fi.ts \
|
||||||
lang/gpxsee_fr.ts \
|
lang/gpxsee_fr.ts \
|
||||||
lang/gpxsee_pl.ts
|
lang/gpxsee_pl.ts \
|
||||||
|
lang/gpxsee_nb.ts \
|
||||||
|
lang/gpxsee_da.ts \
|
||||||
|
lang/gpxsee_tr.ts
|
||||||
|
|
||||||
macx {
|
macx {
|
||||||
ICON = icons/gpxsee.icns
|
ICON = icons/gpxsee.icns
|
||||||
QMAKE_INFO_PLIST = pkg/Info.plist
|
QMAKE_INFO_PLIST = pkg/Info.plist
|
||||||
LOCALE.path = Contents/Resources/translations
|
LOCALE.path = Contents/Resources/translations
|
||||||
LOCALE.files = lang/gpxsee_cs.qm \
|
LOCALE.files = lang/gpxsee_en.qm \
|
||||||
|
lang/gpxsee_cs.qm \
|
||||||
lang/gpxsee_de.qm \
|
lang/gpxsee_de.qm \
|
||||||
lang/gpxsee_fi.qm \
|
lang/gpxsee_fi.qm \
|
||||||
lang/gpxsee_fr.qm \
|
lang/gpxsee_fr.qm \
|
||||||
lang/gpxsee_ru.qm \
|
lang/gpxsee_ru.qm \
|
||||||
lang/gpxsee_sv.qm \
|
lang/gpxsee_sv.qm \
|
||||||
lang/gpxsee_pl.qm
|
lang/gpxsee_pl.qm \
|
||||||
|
lang/gpxsee_nb.qm \
|
||||||
|
lang/gpxsee_da.qm \
|
||||||
|
lang/gpxsee_tr.qm
|
||||||
CSV.path = Contents/Resources
|
CSV.path = Contents/Resources
|
||||||
CSV.files = pkg/csv
|
CSV.files = pkg/csv
|
||||||
MAPS.path = Contents/Resources
|
MAPS.path = Contents/Resources
|
||||||
@ -259,7 +297,9 @@ macx {
|
|||||||
icons/nmea.icns \
|
icons/nmea.icns \
|
||||||
icons/plt.icns \
|
icons/plt.icns \
|
||||||
icons/rte.icns \
|
icons/rte.icns \
|
||||||
icons/wpt.icns
|
icons/wpt.icns \
|
||||||
|
icons/loc.icns \
|
||||||
|
icons/slf.icns
|
||||||
QMAKE_BUNDLE_DATA += LOCALE MAPS ICONS CSV
|
QMAKE_BUNDLE_DATA += LOCALE MAPS ICONS CSV
|
||||||
}
|
}
|
||||||
win32 {
|
win32 {
|
||||||
@ -272,7 +312,11 @@ win32 {
|
|||||||
icons/nmea.ico \
|
icons/nmea.ico \
|
||||||
icons/plt.ico \
|
icons/plt.ico \
|
||||||
icons/rte.ico \
|
icons/rte.ico \
|
||||||
icons/wpt.ico
|
icons/wpt.ico \
|
||||||
|
icons/loc.ico \
|
||||||
|
icons/slf.ico
|
||||||
DEFINES += _USE_MATH_DEFINES
|
DEFINES += _USE_MATH_DEFINES
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
|
DEFINES += APP_VERSION=\\\"$$VERSION\\\"
|
||||||
|
DEFINES *= QT_USE_QSTRINGBUILDER
|
||||||
|
66
gpxsee.qrc
@ -1,24 +1,46 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/">
|
<qresource prefix="/">
|
||||||
<file>icons/dialog-close.png</file>
|
<file>icons/dialog-close.png</file>
|
||||||
<file>icons/document-open.png</file>
|
<file>icons/dialog-close@2x.png</file>
|
||||||
<file>icons/document-print.png</file>
|
<file>icons/document-open.png</file>
|
||||||
<file>icons/document-export.png</file>
|
<file>icons/document-open@2x.png</file>
|
||||||
<file>icons/flag.png</file>
|
<file>icons/document-print.png</file>
|
||||||
<file>icons/gpxsee.png</file>
|
<file>icons/document-print@2x.png</file>
|
||||||
<file>icons/application-exit.png</file>
|
<file>icons/document-export.png</file>
|
||||||
<file>icons/applications-internet.png</file>
|
<file>icons/document-export@2x.png</file>
|
||||||
<file>icons/view-refresh.png</file>
|
<file>icons/flag.png</file>
|
||||||
<file>icons/arrow-left.png</file>
|
<file>icons/flag@2x.png</file>
|
||||||
<file>icons/arrow-right.png</file>
|
<file>icons/gpxsee.png</file>
|
||||||
<file>icons/arrow-left-double.png</file>
|
<file>icons/gpxsee@2x.png</file>
|
||||||
<file>icons/arrow-right-double.png</file>
|
<file>icons/application-exit.png</file>
|
||||||
<file>icons/view-fullscreen.png</file>
|
<file>icons/application-exit@2x.png</file>
|
||||||
<file>icons/office-chart-line.png</file>
|
<file>icons/applications-internet.png</file>
|
||||||
<file>icons/preferences-desktop-display.png</file>
|
<file>icons/applications-internet@2x.png</file>
|
||||||
<file>icons/flag_48.png</file>
|
<file>icons/view-refresh.png</file>
|
||||||
<file>icons/system-run.png</file>
|
<file>icons/view-refresh@2x.png</file>
|
||||||
<file>icons/document-print-preview.png</file>
|
<file>icons/arrow-left.png</file>
|
||||||
<file>icons/view-filter.png</file>
|
<file>icons/arrow-left@2x.png</file>
|
||||||
</qresource>
|
<file>icons/arrow-right.png</file>
|
||||||
|
<file>icons/arrow-right@2x.png</file>
|
||||||
|
<file>icons/arrow-left-double.png</file>
|
||||||
|
<file>icons/arrow-left-double@2x.png</file>
|
||||||
|
<file>icons/arrow-right-double.png</file>
|
||||||
|
<file>icons/arrow-right-double@2x.png</file>
|
||||||
|
<file>icons/view-fullscreen.png</file>
|
||||||
|
<file>icons/view-fullscreen@2x.png</file>
|
||||||
|
<file>icons/office-chart-line.png</file>
|
||||||
|
<file>icons/office-chart-line@2x.png</file>
|
||||||
|
<file>icons/format-stroke-color.png</file>
|
||||||
|
<file>icons/format-stroke-color@2x.png</file>
|
||||||
|
<file>icons/flag_32.png</file>
|
||||||
|
<file>icons/flag_32@2x.png</file>
|
||||||
|
<file>icons/preferences-system.png</file>
|
||||||
|
<file>icons/preferences-system@2x.png</file>
|
||||||
|
<file>icons/document-print_32.png</file>
|
||||||
|
<file>icons/document-print_32@2x.png</file>
|
||||||
|
<file>icons/view-filter.png</file>
|
||||||
|
<file>icons/view-filter@2x.png</file>
|
||||||
|
<file>icons/applications-internet_32.png</file>
|
||||||
|
<file>icons/applications-internet_32@2x.png</file>
|
||||||
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
BIN
icons/application-exit@2x.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
icons/applications-internet@2x.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
icons/applications-internet_32.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
icons/applications-internet_32@2x.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
icons/arrow-left-double@2x.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
icons/arrow-left@2x.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
icons/arrow-right-double@2x.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
icons/arrow-right@2x.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
icons/dialog-close@2x.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
icons/document-export@2x.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 796 B After Width: | Height: | Size: 1.1 KiB |
BIN
icons/document-open@2x.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.3 KiB |
BIN
icons/document-print@2x.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
icons/document-print_32.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
icons/document-print_32@2x.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
icons/fit.icns
BIN
icons/fit.ico
Before Width: | Height: | Size: 302 KiB After Width: | Height: | Size: 302 KiB |
BIN
icons/flag@2x.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
icons/flag_32.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
icons/flag_32@2x.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 7.1 KiB |
BIN
icons/format-stroke-color.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
icons/format-stroke-color@2x.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
icons/gpx.icns
BIN
icons/gpx.ico
Before Width: | Height: | Size: 305 KiB After Width: | Height: | Size: 305 KiB |
BIN
icons/gpxsee@2x.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
icons/igc.icns
BIN
icons/igc.ico
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 304 KiB |
BIN
icons/kml.icns
BIN
icons/kml.ico
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 304 KiB |
BIN
icons/loc.icns
Normal file
BIN
icons/loc.ico
Normal file
After Width: | Height: | Size: 305 KiB |
BIN
icons/nmea.icns
BIN
icons/nmea.ico
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 305 KiB |
BIN
icons/office-chart-line@2x.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
icons/plt.icns
BIN
icons/plt.ico
Before Width: | Height: | Size: 302 KiB After Width: | Height: | Size: 302 KiB |
Before Width: | Height: | Size: 3.3 KiB |
BIN
icons/preferences-system.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
icons/preferences-system@2x.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
icons/rte.icns
BIN
icons/rte.ico
Before Width: | Height: | Size: 303 KiB After Width: | Height: | Size: 302 KiB |
11
icons/scripts/extensions
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fit:#006600
|
||||||
|
gpx:#003399
|
||||||
|
igc:#ff3300
|
||||||
|
kml:#990000
|
||||||
|
nmea:#0083d7
|
||||||
|
plt:#66ff00
|
||||||
|
rte:#66ff00
|
||||||
|
tcx:#ffcc00
|
||||||
|
wpt:#66ff00
|
||||||
|
loc:#556677
|
||||||
|
slf:#881199
|
@ -1,9 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
EXTENSIONS="fit:#006600 gpx:#003399 igc:#ff3300 kml:#990000 nmea:#0083d7 \
|
while read e; do
|
||||||
plt:#66ff00 rte:#66ff00 tcx:#ffcc00 wpt:#66ff00"
|
|
||||||
|
|
||||||
for e in $EXTENSIONS; do
|
|
||||||
IFS=":"; set $e
|
IFS=":"; set $e
|
||||||
|
|
||||||
EXT=`echo $1 | tr /a-z/ /A-Z/`
|
EXT=`echo $1 | tr /a-z/ /A-Z/`
|
||||||
@ -25,4 +22,4 @@ for e in $EXTENSIONS; do
|
|||||||
|
|
||||||
iconutil -c icns -o $1.icns "$ICONSET"
|
iconutil -c icns -o $1.icns "$ICONSET"
|
||||||
rm -R "$ICONSET" $1.svg
|
rm -R "$ICONSET" $1.svg
|
||||||
done
|
done < extensions
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
EXTENSIONS="fit:#006600 gpx:#003399 igc:#ff3300 kml:#990000 nmea:#0083d7 \
|
while read e; do
|
||||||
plt:#66ff00 rte:#66ff00 tcx:#ffcc00 wpt:#66ff00"
|
|
||||||
|
|
||||||
for e in $EXTENSIONS; do
|
|
||||||
IFS=":"; set $e
|
IFS=":"; set $e
|
||||||
|
|
||||||
EXT=`echo $1 | tr /a-z/ /A-Z/`
|
EXT=`echo $1 | tr /a-z/ /A-Z/`
|
||||||
sed -e "s/\$EXTENSION/$EXT/" -e "s/\$COLOR/$2/" icon-template.svg > $1.svg
|
sed -e "s/\$EXTENSION/$EXT/" -e "s/\$COLOR/$2/" icon-template.svg > $1.svg
|
||||||
convert -density 400 $1.svg -define icon:auto-resize $1.ico
|
convert -density 400 $1.svg -define icon:auto-resize $1.ico
|
||||||
rm $1.svg
|
rm $1.svg
|
||||||
done
|
done < extensions
|
||||||
|
@ -12,6 +12,9 @@
|
|||||||
</g>
|
</g>
|
||||||
<g transform="translate(16.573463,124.9782)">
|
<g transform="translate(16.573463,124.9782)">
|
||||||
<rect y="0" x="0" id="textrect" height="50" width="120" style="fill:$COLOR;fill-opacity:1;stroke:none;"/>
|
<rect y="0" x="0" id="textrect" height="50" width="120" style="fill:$COLOR;fill-opacity:1;stroke:none;"/>
|
||||||
<text y="28" x="60" dominant-baseline="central" text-anchor="middle" style="fill:#FFFFFF;font-size:39px;font-family:sans-serif;font-weight:bold;">$EXTENSION</text>
|
<!--
|
||||||
|
<text y="28" x="60" dominant-baseline="central" text-anchor="middle" style="fill:#FFFFFF;font-size:39px;font-family:Helvetica;font-weight:bold;">$EXTENSION</text>
|
||||||
|
-->
|
||||||
|
<text y="25" x="60" dy="0.36em" text-anchor="middle" style="fill:#FFFFFF;font-size:39px;font-family:Helvetica;font-weight:bold;">$EXTENSION</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
icons/slf.icns
Normal file
BIN
icons/slf.ico
Normal file
After Width: | Height: | Size: 304 KiB |
Before Width: | Height: | Size: 3.1 KiB |
BIN
icons/tcx.icns
BIN
icons/tcx.ico
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 304 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 885 B |
BIN
icons/view-filter@2x.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
icons/view-fullscreen@2x.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
icons/view-refresh@2x.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
icons/wpt.icns
BIN
icons/wpt.ico
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 304 KiB |
1749
lang/gpxsee_da.ts
Normal file
4
lang/gpxsee_en.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!DOCTYPE TS>
|
||||||
|
<TS version="2.1" language="en_US">
|
||||||
|
</TS>
|
1749
lang/gpxsee_nb.ts
Normal file
1748
lang/gpxsee_tr.ts
Normal file
@ -67,6 +67,38 @@
|
|||||||
<key>CFBundleTypeRole</key>
|
<key>CFBundleTypeRole</key>
|
||||||
<string>Viewer</string>
|
<string>Viewer</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeExtensions</key>
|
||||||
|
<array>
|
||||||
|
<string>loc</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleTypeMIMETypes</key>
|
||||||
|
<array>
|
||||||
|
<string>application/loc+xml</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleTypeIconFile</key>
|
||||||
|
<string>icons/loc.icns</string>
|
||||||
|
<key>CFBundleTypeName</key>
|
||||||
|
<string>Geocaching.com Waypoint File</string>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Viewer</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleTypeExtensions</key>
|
||||||
|
<array>
|
||||||
|
<string>slf</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleTypeMIMETypes</key>
|
||||||
|
<array>
|
||||||
|
<string>application/slf+xml</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleTypeIconFile</key>
|
||||||
|
<string>icons/slf.icns</string>
|
||||||
|
<key>CFBundleTypeName</key>
|
||||||
|
<string>Sigma Log Format</string>
|
||||||
|
<key>CFBundleTypeRole</key>
|
||||||
|
<string>Viewer</string>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleTypeExtensions</key>
|
<key>CFBundleTypeExtensions</key>
|
||||||
<array>
|
<array>
|
||||||
@ -230,6 +262,48 @@
|
|||||||
<string>application/vnd.google-earth.kml+xml</string>
|
<string>application/vnd.google-earth.kml+xml</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>UTTypeIdentifier</key>
|
||||||
|
<string>com.geocaching.loc</string>
|
||||||
|
<key>UTTypeReferenceURL</key>
|
||||||
|
<string>https://www.geocaching.com</string>
|
||||||
|
<key>UTTypeDescription</key>
|
||||||
|
<string>Geocaching.com Waypoint File</string>
|
||||||
|
<key>UTTypeConformsTo</key>
|
||||||
|
<array>
|
||||||
|
<string>public.xml</string>
|
||||||
|
</array>
|
||||||
|
<key>UTTypeTagSpecification</key>
|
||||||
|
<dict>
|
||||||
|
<key>public.filename-extension</key>
|
||||||
|
<array>
|
||||||
|
<string>loc</string>
|
||||||
|
</array>
|
||||||
|
<key>public.mime-type</key>
|
||||||
|
<string>application/loc+xml</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>UTTypeIdentifier</key>
|
||||||
|
<string>com.sigmasport.slf</string>
|
||||||
|
<key>UTTypeReferenceURL</key>
|
||||||
|
<string>https://www.sigmasport.com</string>
|
||||||
|
<key>UTTypeDescription</key>
|
||||||
|
<string>Sigma Log Format</string>
|
||||||
|
<key>UTTypeConformsTo</key>
|
||||||
|
<array>
|
||||||
|
<string>public.xml</string>
|
||||||
|
</array>
|
||||||
|
<key>UTTypeTagSpecification</key>
|
||||||
|
<dict>
|
||||||
|
<key>public.filename-extension</key>
|
||||||
|
<array>
|
||||||
|
<string>slf</string>
|
||||||
|
</array>
|
||||||
|
<key>public.mime-type</key>
|
||||||
|
<string>application/slf+xml</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>UTTypeIdentifier</key>
|
<key>UTTypeIdentifier</key>
|
||||||
<string>com.thisisant.fit</string>
|
<string>com.thisisant.fit</string>
|
||||||
|
@ -8,21 +8,23 @@
|
|||||||
<summary>GPS log file viewer and analyzer</summary>
|
<summary>GPS log file viewer and analyzer</summary>
|
||||||
<description>
|
<description>
|
||||||
<p>GPXSee is a GPS log file viewer and analyzer that supports GPX, TCX,
|
<p>GPXSee is a GPS log file viewer and analyzer that supports GPX, TCX,
|
||||||
KML, FIT, IGC, NMEA and OziExplorer files.</p>
|
KML, FIT, IGC, NMEA, SLF, LOC and OziExplorer files.</p>
|
||||||
|
|
||||||
<p>Features:</p>
|
<p>Features:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>User-definable online maps (OSM/Google tiles, WMTS, WMS).</li>
|
<li>User-definable online maps (OpenStreetMap/Google tiles, WMTS,
|
||||||
<li>Offline maps (OziExplorer maps, TrekBuddy maps/atlases, GeoTIFF
|
WMS, TMS).</li>
|
||||||
images).</li>
|
<li>Offline maps (MBTiles, OziExplorer maps, TrekBuddy maps/atlases,
|
||||||
|
GeoTIFF images).</li>
|
||||||
<li>Elevation, speed, heart rate, cadence, power and temperature
|
<li>Elevation, speed, heart rate, cadence, power and temperature
|
||||||
graphs.</li>
|
graphs.</li>
|
||||||
<li>Support for multiple tracks in one view.</li>
|
<li>Support for multiple tracks in one view.</li>
|
||||||
<li>Support for POI files.</li>
|
<li>Support for POI files.</li>
|
||||||
<li>Print/export to PDF.</li>
|
<li>Print/export to PDF.</li>
|
||||||
<li>Full-screen mode.</li>
|
<li>Full-screen mode.</li>
|
||||||
<li>Opens GPX, TCX, FIT, KML, IGC, NMEA, OziExplorer (PLT, WPT, RTE)
|
<li>HiDPI/Retina displays & maps support.</li>
|
||||||
and Garmin CSV files.</li>
|
<li>Opens GPX, TCX, FIT, KML, IGC, NMEA, SLF, LOC, OziExplorer (PLT,
|
||||||
|
WPT, RTE) and Garmin CSV files.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
@ -38,6 +40,10 @@
|
|||||||
<categories>
|
<categories>
|
||||||
<category>Graphics</category>
|
<category>Graphics</category>
|
||||||
<category>Viewer</category>
|
<category>Viewer</category>
|
||||||
|
<category>Maps</category>
|
||||||
|
<category>Geoscience</category>
|
||||||
|
<category>Geography</category>
|
||||||
|
<category>DataVisualization</category>
|
||||||
</categories>
|
</categories>
|
||||||
|
|
||||||
<url type="homepage">http://www.gpxsee.org</url>
|
<url type="homepage">http://www.gpxsee.org</url>
|
||||||
@ -58,5 +64,7 @@
|
|||||||
<mimetype>application/vnd.oziexplorer.plt</mimetype>
|
<mimetype>application/vnd.oziexplorer.plt</mimetype>
|
||||||
<mimetype>application/vnd.oziexplorer.rte</mimetype>
|
<mimetype>application/vnd.oziexplorer.rte</mimetype>
|
||||||
<mimetype>application/vnd.oziexplorer.wpt</mimetype>
|
<mimetype>application/vnd.oziexplorer.wpt</mimetype>
|
||||||
|
<mimetype>application/loc+xml</mimetype>
|
||||||
|
<mimetype>application/slf+xml</mimetype>
|
||||||
</mimetypes>
|
</mimetypes>
|
||||||
</component>
|
</component>
|
||||||
|
@ -21,6 +21,7 @@ ED50(ED77) / UTM zone 40N,2060,4154,16040,9001,9807,4400,8801,0,9102,8802,57,910
|
|||||||
ED50(ED77) / UTM zone 41N,2061,4154,16041,9001,9807,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
ED50(ED77) / UTM zone 41N,2061,4154,16041,9001,9807,4400,8801,0,9102,8802,63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
||||||
Dabola 1981 / UTM zone 28N,2063,4315,16028,9001,9807,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
Dabola 1981 / UTM zone 28N,2063,4315,16028,9001,9807,4400,8801,0,9102,8802,-15,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
||||||
Dabola 1981 / UTM zone 29N,2064,4315,16029,9001,9807,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
Dabola 1981 / UTM zone 29N,2064,4315,16029,9001,9807,4400,8801,0,9102,8802,-9,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
||||||
|
S-JTSK (Ferro) / Krovak,2065,4818,19952,9001,9819,6501,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,42.3,9110
|
||||||
Naparima 1955 / UTM zone 20N,2067,4158,16020,9001,9807,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
Naparima 1955 / UTM zone 20N,2067,4158,16020,9001,9807,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
||||||
ELD79 / Libya zone 5,2068,4159,18240,9001,9807,4499,8801,0,9102,8802,9,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,
|
ELD79 / Libya zone 5,2068,4159,18240,9001,9807,4499,8801,0,9102,8802,9,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,
|
||||||
ELD79 / Libya zone 6,2069,4159,18241,9001,9807,4499,8801,0,9102,8802,11,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,
|
ELD79 / Libya zone 6,2069,4159,18241,9001,9807,4499,8801,0,9102,8802,11,9102,8805,0.9999,9201,8806,200000,9001,8807,0,9001,,,,,,
|
||||||
@ -1571,7 +1572,6 @@ SWEREF99 / RT90 5 gon O emulation,3850,4619,17344,9001,9807,4530,8801,0,9110,880
|
|||||||
NZGD2000 / NZCS2000,3851,4167,17964,9001,9802,4500,8821,-41,9110,8822,173,9110,8823,-37.3,9110,8824,-44.3,9110,8826,3000000,9001,8827,7000000,9001,,,
|
NZGD2000 / NZCS2000,3851,4167,17964,9001,9802,4500,8821,-41,9110,8822,173,9110,8823,-37.3,9110,8824,-44.3,9110,8826,3000000,9001,8827,7000000,9001,,,
|
||||||
RSRGD2000 / DGLC2000,3852,4764,17966,9001,9802,4500,8821,-90,9110,8822,157,9110,8823,-76.4,9110,8824,-79.2,9110,8826,500000,9001,8827,0,9001,,,
|
RSRGD2000 / DGLC2000,3852,4764,17966,9001,9802,4500,8821,-90,9110,8822,157,9110,8823,-76.4,9110,8824,-79.2,9110,8826,500000,9001,8827,0,9001,,,
|
||||||
County ST74,3854,4619,3853,9001,9807,4531,8801,0,9110,8802,18.0328332,9110,8805,0.99999506,9201,8806,100182.7406,9001,8807,-6500620.1207,9001,,,,,,
|
County ST74,3854,4619,3853,9001,9807,4531,8801,0,9110,8802,18.0328332,9110,8805,0.99999506,9201,8806,100182.7406,9001,8807,-6500620.1207,9001,,,,,,
|
||||||
WGS 84 / Pseudo-Mercator,3857,4326,3856,9001,1024,4499,8801,0,9102,8802,0,9102,8806,0,9001,8807,0,9001,,,,,,,,,
|
|
||||||
ETRS89 / GK19FIN,3873,4258,3860,9001,9807,4500,8801,0,9102,8802,19,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,
|
ETRS89 / GK19FIN,3873,4258,3860,9001,9807,4500,8801,0,9102,8802,19,9102,8805,1,9201,8806,19500000,9001,8807,0,9001,,,,,,
|
||||||
ETRS89 / GK20FIN,3874,4258,3861,9001,9807,4500,8801,0,9102,8802,20,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,
|
ETRS89 / GK20FIN,3874,4258,3861,9001,9807,4500,8801,0,9102,8802,20,9102,8805,1,9201,8806,20500000,9001,8807,0,9001,,,,,,
|
||||||
ETRS89 / GK21FIN,3875,4258,3862,9001,9807,4500,8801,0,9102,8802,21,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,
|
ETRS89 / GK21FIN,3875,4258,3862,9001,9807,4500,8801,0,9102,8802,21,9102,8805,1,9201,8806,21500000,9001,8807,0,9001,,,,,,
|
||||||
@ -1766,6 +1766,7 @@ Korea 2000 / West Belt 2010,5185,4737,5101,9001,9807,4530,8801,38,9102,8802,125,
|
|||||||
Korea 2000 / Central Belt 2010,5186,4737,5102,9001,9807,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,
|
Korea 2000 / Central Belt 2010,5186,4737,5102,9001,9807,4530,8801,38,9102,8802,127,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,
|
||||||
Korea 2000 / East Belt 2010,5187,4737,5103,9001,9807,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,
|
Korea 2000 / East Belt 2010,5187,4737,5103,9001,9807,4530,8801,38,9102,8802,129,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,
|
||||||
Korea 2000 / East Sea Belt 2010,5188,4737,5104,9001,9807,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,
|
Korea 2000 / East Sea Belt 2010,5188,4737,5104,9001,9807,4530,8801,38,9102,8802,131,9102,8805,1,9201,8806,200000,9001,8807,600000,9001,,,,,,
|
||||||
|
S-JTSK (Ferro) / Krovak East North,5221,4818,5218,9001,1041,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,42.3,9110
|
||||||
WGS 84 / Gabon TM,5223,4326,5222,9001,9807,4499,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,500000,9001,,,,,,
|
WGS 84 / Gabon TM,5223,4326,5222,9001,9807,4499,8801,0,9102,8802,12,9102,8805,0.9996,9201,8806,500000,9001,8807,500000,9001,,,,,,
|
||||||
Kandawala / Sri Lanka Grid,5234,4244,5231,9001,9807,4400,8801,7.0001729,9110,8802,80.461816,9110,8805,0.9999238418,9201,8806,200000,9001,8807,200000,9001,,,,,,
|
Kandawala / Sri Lanka Grid,5234,4244,5231,9001,9807,4400,8801,7.0001729,9110,8802,80.461816,9110,8805,0.9999238418,9201,8806,200000,9001,8807,200000,9001,,,,,,
|
||||||
SLD99 / Sri Lanka Grid 1999,5235,5233,5232,9001,9807,4400,8801,7.00016975,9110,8802,80.46181671,9110,8805,0.9999238418,9201,8806,500000,9001,8807,500000,9001,,,,,,
|
SLD99 / Sri Lanka Grid 1999,5235,5233,5232,9001,9807,4400,8801,7.00016975,9110,8802,80.46181671,9110,8805,0.9999238418,9201,8806,500000,9001,8807,500000,9001,,,,,,
|
||||||
@ -1844,6 +1845,9 @@ RSRGD2000 / MSLC2000,5479,4764,5475,9001,9802,4500,8821,-78,9110,8822,163,9110,8
|
|||||||
RSRGD2000 / BCLC2000,5480,4764,5476,9001,9802,4500,8821,-74.3,9110,8822,165,9110,8823,-73.4,9110,8824,-75.2,9110,8826,5000000,9001,8827,3000000,9001,,,
|
RSRGD2000 / BCLC2000,5480,4764,5476,9001,9802,4500,8821,-74.3,9110,8822,165,9110,8823,-73.4,9110,8824,-75.2,9110,8826,5000000,9001,8827,3000000,9001,,,
|
||||||
RSRGD2000 / PCLC2000,5481,4764,5477,9001,9802,4500,8821,-71.3,9110,8822,166,9110,8823,-70.4,9110,8824,-72.2,9110,8826,3000000,9001,8827,1000000,9001,,,
|
RSRGD2000 / PCLC2000,5481,4764,5477,9001,9802,4500,8821,-71.3,9110,8822,166,9110,8823,-70.4,9110,8824,-72.2,9110,8826,3000000,9001,8827,1000000,9001,,,
|
||||||
RGAF09 / UTM zone 20N,5490,5489,16020,9001,9807,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
RGAF09 / UTM zone 20N,5490,5489,16020,9001,9807,4400,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,500000,9001,8807,0,9001,,,,,,
|
||||||
|
S-JTSK / Krovak,5513,4156,5509,9001,9819,6501,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110
|
||||||
|
S-JTSK / Krovak East North,5514,4156,5510,9001,1041,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110
|
||||||
|
S-JTSK / Krovak East North,102067,4156,5510,9001,1041,4499,1036,30.1717303,9110,8806,0,9001,8807,0,9001,8811,49.3,9110,8818,78.3,9110,8819,0.9999,9201,8833,24.5,9110
|
||||||
CI1971 / Chatham Islands Map Grid,5518,4672,5517,9001,9807,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,
|
CI1971 / Chatham Islands Map Grid,5518,4672,5517,9001,9807,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,
|
||||||
CI1979 / Chatham Islands Map Grid,5519,4673,5517,9001,9807,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,
|
CI1979 / Chatham Islands Map Grid,5519,4673,5517,9001,9807,4500,8801,-44,9110,8802,-176.3,9110,8805,1,9201,8806,350000,9001,8807,650000,9001,,,,,,
|
||||||
DHDN / 3-degree Gauss-Kruger zone 1,5520,4314,16261,9001,9807,4530,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,
|
DHDN / 3-degree Gauss-Kruger zone 1,5520,4314,16261,9001,9807,4530,8801,0,9102,8802,3,9102,8805,1,9201,8806,1500000,9001,8807,0,9001,,,,,,
|
||||||
|
Can't render this file because it is too large.
|
@ -11,4 +11,4 @@ Icon=gpxsee
|
|||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Categories=Graphics;Viewer;Maps;Qt;
|
Categories=Graphics;Viewer;Maps;Qt;
|
||||||
MimeType=application/gpx+xml;application/tcx+xml;application/vnd.ant.fit;application/vnd.google-earth.kml+xml;application/vnd.fai.igc;application/vnd.nmea.nmea;application/vnd.oziexplorer.plt;application/vnd.oziexplorer.rte;application/vnd.oziexplorer.wpt;
|
MimeType=application/gpx+xml;application/tcx+xml;application/vnd.ant.fit;application/vnd.google-earth.kml+xml;application/vnd.fai.igc;application/vnd.nmea.nmea;application/vnd.oziexplorer.plt;application/vnd.oziexplorer.rte;application/vnd.oziexplorer.wpt;application/loc+xml;application/slf+xml;
|
||||||
|
139
pkg/gpxsee.nsi
@ -1,11 +1,13 @@
|
|||||||
!include "MUI2.nsh"
|
!include "MUI2.nsh"
|
||||||
!include "x64.nsh"
|
!include "x64.nsh"
|
||||||
!include "WinVer.nsh"
|
!include "WinVer.nsh"
|
||||||
|
!include "macros.nsh"
|
||||||
|
|
||||||
|
|
||||||
; The name of the installer
|
; The name of the installer
|
||||||
Name "GPXSee"
|
Name "GPXSee"
|
||||||
; Program version
|
; Program version
|
||||||
!define VERSION "5.12"
|
!define VERSION "7.0"
|
||||||
|
|
||||||
; The file to write
|
; The file to write
|
||||||
OutFile "GPXSee-${VERSION}.exe"
|
OutFile "GPXSee-${VERSION}.exe"
|
||||||
@ -32,16 +34,6 @@ InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir"
|
|||||||
|
|
||||||
; Registry key for uninstaller
|
; Registry key for uninstaller
|
||||||
!define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee"
|
!define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee"
|
||||||
; File types registry entries
|
|
||||||
!define REGGPX "GPXSee.gpx"
|
|
||||||
!define REGTCX "GPXSee.tcx"
|
|
||||||
!define REGKML "GPXSee.kml"
|
|
||||||
!define REGFIT "GPXSee.fit"
|
|
||||||
!define REGIGC "GPXSee.igc"
|
|
||||||
!define REGNMEA "GPXSee.nmea"
|
|
||||||
!define REGPLT "GPXSee.plt"
|
|
||||||
!define REGRTE "GPXSee.rte"
|
|
||||||
!define REGWPT "GPXSee.wpt"
|
|
||||||
|
|
||||||
; Start menu page configuration
|
; Start menu page configuration
|
||||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
|
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
|
||||||
@ -114,43 +106,17 @@ Section "GPXSee" SEC_APP
|
|||||||
|
|
||||||
; Associate file formats
|
; Associate file formats
|
||||||
DetailPrint "Associating file types..."
|
DetailPrint "Associating file types..."
|
||||||
WriteRegStr HKCR ".gpx" "" "${REGGPX}"
|
!insertmacro FILE_ASSOCIATION_ADD "gpx" "GPS Exchange Format" 4
|
||||||
WriteRegStr HKCR "${REGGPX}" "" "GPS Exchange Format"
|
!insertmacro FILE_ASSOCIATION_ADD "tcx" "Training Center XML" 5
|
||||||
WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2"
|
!insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 6
|
||||||
WriteRegStr HKCR "${REGGPX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
!insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 7
|
||||||
WriteRegStr HKCR ".tcx" "" "${REGTCX}"
|
!insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 8
|
||||||
WriteRegStr HKCR "${REGTCX}" "" "Training Center XML"
|
!insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 data" 9
|
||||||
WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3"
|
!insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track Point File" 10
|
||||||
WriteRegStr HKCR "${REGTCX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
!insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 11
|
||||||
WriteRegStr HKCR ".kml" "" "${REGKML}"
|
!insertmacro FILE_ASSOCIATION_ADD "wpt" "OziExplorer Waypoint File" 1
|
||||||
WriteRegStr HKCR "${REGKML}" "" "Keyhole Markup Language"
|
!insertmacro FILE_ASSOCIATION_ADD "loc" "Geocaching.com Waypoint File" 2
|
||||||
WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4"
|
!insertmacro FILE_ASSOCIATION_ADD "slf" "Sigma Log File" 3
|
||||||
WriteRegStr HKCR "${REGKML}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".fit" "" "${REGFIT}"
|
|
||||||
WriteRegStr HKCR "${REGFIT}" "" "Flexible and Interoperable Data Transfer"
|
|
||||||
WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,5"
|
|
||||||
WriteRegStr HKCR "${REGFIT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".igc" "" "${REGIGC}"
|
|
||||||
WriteRegStr HKCR "${REGIGC}" "" "Flight Recorder Data Format"
|
|
||||||
WriteRegStr HKCR "${REGIGC}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,6"
|
|
||||||
WriteRegStr HKCR "${REGIGC}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".nmea" "" "${REGNMEA}"
|
|
||||||
WriteRegStr HKCR "${REGNMEA}" "" "NMEA 0183 data"
|
|
||||||
WriteRegStr HKCR "${REGNMEA}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,7"
|
|
||||||
WriteRegStr HKCR "${REGNMEA}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".plt" "" "${REGPLT}"
|
|
||||||
WriteRegStr HKCR "${REGPLT}" "" "OziExplorer Track Point File"
|
|
||||||
WriteRegStr HKCR "${REGPLT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,8"
|
|
||||||
WriteRegStr HKCR "${REGPLT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".rte" "" "${REGRTE}"
|
|
||||||
WriteRegStr HKCR "${REGRTE}" "" "OziExplorer Route File"
|
|
||||||
WriteRegStr HKCR "${REGRTE}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,9"
|
|
||||||
WriteRegStr HKCR "${REGRTE}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".wpt" "" "${REGWPT}"
|
|
||||||
WriteRegStr HKCR "${REGWPT}" "" "OziExplorer Waypoint File"
|
|
||||||
WriteRegStr HKCR "${REGWPT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1"
|
|
||||||
WriteRegStr HKCR "${REGWPT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
|
|
||||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
@ -164,9 +130,13 @@ Section "QT framework" SEC_QT
|
|||||||
File "Qt5Widgets.dll"
|
File "Qt5Widgets.dll"
|
||||||
File "Qt5PrintSupport.dll"
|
File "Qt5PrintSupport.dll"
|
||||||
File "Qt5Network.dll"
|
File "Qt5Network.dll"
|
||||||
|
File "Qt5Sql.dll"
|
||||||
|
File "Qt5Concurrent.dll"
|
||||||
File /r "platforms"
|
File /r "platforms"
|
||||||
File /r "imageformats"
|
File /r "imageformats"
|
||||||
File /r "printsupport"
|
File /r "printsupport"
|
||||||
|
File /r "styles"
|
||||||
|
File /r "sqldrivers"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@ -210,40 +180,16 @@ Section "ANGLE" SEC_ANGLE
|
|||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
SectionGroup "Localization" SEC_LOCALIZATION
|
SectionGroup "Localization" SEC_LOCALIZATION
|
||||||
Section "Czech"
|
!insertmacro LOCALIZATION "Czech" "cs"
|
||||||
CreateDirectory "$INSTDIR\translations"
|
!insertmacro LOCALIZATION "Danish" "da"
|
||||||
File /oname=translations\gpxsee_cs.qm translations\gpxsee_cs.qm
|
!insertmacro LOCALIZATION "Finnish" "fi"
|
||||||
File /oname=translations\qt_cs.qm translations\qt_cs.qm
|
!insertmacro LOCALIZATION "French" "fr"
|
||||||
SectionEnd
|
!insertmacro LOCALIZATION "German" "de"
|
||||||
Section "Finnish"
|
!insertmacro LOCALIZATION "Norwegian" "nb"
|
||||||
CreateDirectory "$INSTDIR\translations"
|
!insertmacro LOCALIZATION "Polish" "pl"
|
||||||
File /oname=translations\gpxsee_fi.qm translations\gpxsee_fi.qm
|
!insertmacro LOCALIZATION "Russian" "ru"
|
||||||
File /oname=translations\qt_fi.qm translations\qt_fi.qm
|
!insertmacro LOCALIZATION "Swedish" "sv"
|
||||||
SectionEnd
|
!insertmacro LOCALIZATION "Turkish" "tr"
|
||||||
Section "French"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_fr.qm translations\gpxsee_fr.qm
|
|
||||||
File /oname=translations\qt_fr.qm translations\qt_fr.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "German"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_de.qm translations\gpxsee_de.qm
|
|
||||||
File /oname=translations\qt_de.qm translations\qt_de.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "Polish"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_pl.qm translations\gpxsee_pl.qm
|
|
||||||
File /oname=translations\qt_pl.qm translations\qt_pl.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "Russian"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_ru.qm translations\gpxsee_ru.qm
|
|
||||||
File /oname=translations\qt_ru.qm translations\qt_ru.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "Swedish"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_sv.qm translations\gpxsee_sv.qm
|
|
||||||
SectionEnd
|
|
||||||
SectionGroupEnd
|
SectionGroupEnd
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
@ -266,24 +212,17 @@ Section "Uninstall"
|
|||||||
RMDir "$SMPROGRAMS\$StartMenuFolder"
|
RMDir "$SMPROGRAMS\$StartMenuFolder"
|
||||||
|
|
||||||
; Remove GPX file association
|
; Remove GPX file association
|
||||||
DeleteRegKey HKCR "${REGGPX}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "gpx"
|
||||||
DeleteRegKey HKCR ".gpx"
|
!insertmacro FILE_ASSOCIATION_REMOVE "tcx"
|
||||||
DeleteRegKey HKCR "${REGTCX}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "kml"
|
||||||
DeleteRegKey HKCR ".tcx"
|
!insertmacro FILE_ASSOCIATION_REMOVE "fit"
|
||||||
DeleteRegKey HKCR "${REGKML}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "igc"
|
||||||
DeleteRegKey HKCR ".kml"
|
!insertmacro FILE_ASSOCIATION_REMOVE "nmea"
|
||||||
DeleteRegKey HKCR "${REGFIT}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "plt"
|
||||||
DeleteRegKey HKCR ".fit"
|
!insertmacro FILE_ASSOCIATION_REMOVE "rte"
|
||||||
DeleteRegKey HKCR "${REGIGC}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "wpt"
|
||||||
DeleteRegKey HKCR ".igc"
|
!insertmacro FILE_ASSOCIATION_REMOVE "loc"
|
||||||
DeleteRegKey HKCR "${REGNMEA}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "slf"
|
||||||
DeleteRegKey HKCR ".nmea"
|
|
||||||
DeleteRegKey HKCR "${REGPLT}"
|
|
||||||
DeleteRegKey HKCR ".plt"
|
|
||||||
DeleteRegKey HKCR "${REGRTE}"
|
|
||||||
DeleteRegKey HKCR ".rte"
|
|
||||||
DeleteRegKey HKCR "${REGWPT}"
|
|
||||||
DeleteRegKey HKCR ".wpt"
|
|
||||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
@ -22,6 +22,20 @@
|
|||||||
<glob pattern="*.kml"/>
|
<glob pattern="*.kml"/>
|
||||||
</mime-type>
|
</mime-type>
|
||||||
|
|
||||||
|
<mime-type type="application/loc+xml">
|
||||||
|
<comment>Geocaching.com Waypoint File</comment>
|
||||||
|
<sub-class-of type="application/xml"/>
|
||||||
|
<generic-icon name="application-xml"/>
|
||||||
|
<glob pattern="*.loc"/>
|
||||||
|
</mime-type>
|
||||||
|
|
||||||
|
<mime-type type="application/slf+xml">
|
||||||
|
<comment>Sigma Log Format</comment>
|
||||||
|
<sub-class-of type="application/xml"/>
|
||||||
|
<generic-icon name="application-xml"/>
|
||||||
|
<glob pattern="*.slf"/>
|
||||||
|
</mime-type>
|
||||||
|
|
||||||
<mime-type type="application/vnd.ant.fit">
|
<mime-type type="application/vnd.ant.fit">
|
||||||
<comment>Flexible and Interoperable Data Transfer</comment>
|
<comment>Flexible and Interoperable Data Transfer</comment>
|
||||||
<sub-class-of type="application/octet-stream"/>
|
<sub-class-of type="application/octet-stream"/>
|
||||||
|
139
pkg/gpxsee64.nsi
@ -1,11 +1,13 @@
|
|||||||
!include "MUI2.nsh"
|
!include "MUI2.nsh"
|
||||||
!include "x64.nsh"
|
!include "x64.nsh"
|
||||||
!include "WinVer.nsh"
|
!include "WinVer.nsh"
|
||||||
|
!include "macros.nsh"
|
||||||
|
|
||||||
|
|
||||||
; The name of the installer
|
; The name of the installer
|
||||||
Name "GPXSee"
|
Name "GPXSee"
|
||||||
; Program version
|
; Program version
|
||||||
!define VERSION "5.12"
|
!define VERSION "7.0"
|
||||||
|
|
||||||
; The file to write
|
; The file to write
|
||||||
OutFile "GPXSee-${VERSION}_x64.exe"
|
OutFile "GPXSee-${VERSION}_x64.exe"
|
||||||
@ -32,16 +34,6 @@ InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir"
|
|||||||
|
|
||||||
; Registry key for uninstaller
|
; Registry key for uninstaller
|
||||||
!define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee"
|
!define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee"
|
||||||
; File types registry entries
|
|
||||||
!define REGGPX "GPXSee.gpx"
|
|
||||||
!define REGTCX "GPXSee.tcx"
|
|
||||||
!define REGKML "GPXSee.kml"
|
|
||||||
!define REGFIT "GPXSee.fit"
|
|
||||||
!define REGIGC "GPXSee.igc"
|
|
||||||
!define REGNMEA "GPXSee.nmea"
|
|
||||||
!define REGPLT "GPXSee.plt"
|
|
||||||
!define REGRTE "GPXSee.rte"
|
|
||||||
!define REGWPT "GPXSee.wpt"
|
|
||||||
|
|
||||||
; Start menu page configuration
|
; Start menu page configuration
|
||||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
|
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
|
||||||
@ -121,43 +113,17 @@ Section "GPXSee" SEC_APP
|
|||||||
|
|
||||||
; Associate file formats
|
; Associate file formats
|
||||||
DetailPrint "Associating file types..."
|
DetailPrint "Associating file types..."
|
||||||
WriteRegStr HKCR ".gpx" "" "${REGGPX}"
|
!insertmacro FILE_ASSOCIATION_ADD "gpx" "GPS Exchange Format" 4
|
||||||
WriteRegStr HKCR "${REGGPX}" "" "GPS Exchange Format"
|
!insertmacro FILE_ASSOCIATION_ADD "tcx" "Training Center XML" 5
|
||||||
WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2"
|
!insertmacro FILE_ASSOCIATION_ADD "kml" "Keyhole Markup Language" 6
|
||||||
WriteRegStr HKCR "${REGGPX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
!insertmacro FILE_ASSOCIATION_ADD "fit" "Flexible and Interoperable Data Transfer" 7
|
||||||
WriteRegStr HKCR ".tcx" "" "${REGTCX}"
|
!insertmacro FILE_ASSOCIATION_ADD "igc" "Flight Recorder Data Format" 8
|
||||||
WriteRegStr HKCR "${REGTCX}" "" "Training Center XML"
|
!insertmacro FILE_ASSOCIATION_ADD "nmea" "NMEA 0183 data" 9
|
||||||
WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3"
|
!insertmacro FILE_ASSOCIATION_ADD "plt" "OziExplorer Track Point File" 10
|
||||||
WriteRegStr HKCR "${REGTCX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
!insertmacro FILE_ASSOCIATION_ADD "rte" "OziExplorer Route File" 11
|
||||||
WriteRegStr HKCR ".kml" "" "${REGKML}"
|
!insertmacro FILE_ASSOCIATION_ADD "wpt" "OziExplorer Waypoint File" 1
|
||||||
WriteRegStr HKCR "${REGKML}" "" "Keyhole Markup Language"
|
!insertmacro FILE_ASSOCIATION_ADD "loc" "Geocaching.com Waypoint File" 2
|
||||||
WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4"
|
!insertmacro FILE_ASSOCIATION_ADD "slf" "Sigma Log File" 3
|
||||||
WriteRegStr HKCR "${REGKML}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".fit" "" "${REGFIT}"
|
|
||||||
WriteRegStr HKCR "${REGFIT}" "" "Flexible and Interoperable Data Transfer"
|
|
||||||
WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,5"
|
|
||||||
WriteRegStr HKCR "${REGFIT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".igc" "" "${REGIGC}"
|
|
||||||
WriteRegStr HKCR "${REGIGC}" "" "Flight Recorder Data Format"
|
|
||||||
WriteRegStr HKCR "${REGIGC}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,6"
|
|
||||||
WriteRegStr HKCR "${REGIGC}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".nmea" "" "${REGNMEA}"
|
|
||||||
WriteRegStr HKCR "${REGNMEA}" "" "NMEA 0183 data"
|
|
||||||
WriteRegStr HKCR "${REGNMEA}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,7"
|
|
||||||
WriteRegStr HKCR "${REGNMEA}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".plt" "" "${REGPLT}"
|
|
||||||
WriteRegStr HKCR "${REGPLT}" "" "OziExplorer Track Point File"
|
|
||||||
WriteRegStr HKCR "${REGPLT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,8"
|
|
||||||
WriteRegStr HKCR "${REGPLT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".rte" "" "${REGRTE}"
|
|
||||||
WriteRegStr HKCR "${REGRTE}" "" "OziExplorer Route File"
|
|
||||||
WriteRegStr HKCR "${REGRTE}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,9"
|
|
||||||
WriteRegStr HKCR "${REGRTE}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
WriteRegStr HKCR ".wpt" "" "${REGWPT}"
|
|
||||||
WriteRegStr HKCR "${REGWPT}" "" "OziExplorer Waypoint File"
|
|
||||||
WriteRegStr HKCR "${REGWPT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1"
|
|
||||||
WriteRegStr HKCR "${REGWPT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
|
||||||
|
|
||||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
@ -171,9 +137,13 @@ Section "QT framework" SEC_QT
|
|||||||
File "Qt5Widgets.dll"
|
File "Qt5Widgets.dll"
|
||||||
File "Qt5PrintSupport.dll"
|
File "Qt5PrintSupport.dll"
|
||||||
File "Qt5Network.dll"
|
File "Qt5Network.dll"
|
||||||
|
File "Qt5Sql.dll"
|
||||||
|
File "Qt5Concurrent.dll"
|
||||||
File /r "platforms"
|
File /r "platforms"
|
||||||
File /r "imageformats"
|
File /r "imageformats"
|
||||||
File /r "printsupport"
|
File /r "printsupport"
|
||||||
|
File /r "styles"
|
||||||
|
File /r "sqldrivers"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@ -212,40 +182,16 @@ Section "ANGLE" SEC_ANGLE
|
|||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
SectionGroup "Localization" SEC_LOCALIZATION
|
SectionGroup "Localization" SEC_LOCALIZATION
|
||||||
Section "Czech"
|
!insertmacro LOCALIZATION "Czech" "cs"
|
||||||
CreateDirectory "$INSTDIR\translations"
|
!insertmacro LOCALIZATION "Danish" "da"
|
||||||
File /oname=translations\gpxsee_cs.qm translations\gpxsee_cs.qm
|
!insertmacro LOCALIZATION "Finnish" "fi"
|
||||||
File /oname=translations\qt_cs.qm translations\qt_cs.qm
|
!insertmacro LOCALIZATION "French" "fr"
|
||||||
SectionEnd
|
!insertmacro LOCALIZATION "German" "de"
|
||||||
Section "Finnish"
|
!insertmacro LOCALIZATION "Norwegian" "nb"
|
||||||
CreateDirectory "$INSTDIR\translations"
|
!insertmacro LOCALIZATION "Polish" "pl"
|
||||||
File /oname=translations\gpxsee_fi.qm translations\gpxsee_fi.qm
|
!insertmacro LOCALIZATION "Russian" "ru"
|
||||||
File /oname=translations\qt_fi.qm translations\qt_fi.qm
|
!insertmacro LOCALIZATION "Swedish" "sv"
|
||||||
SectionEnd
|
!insertmacro LOCALIZATION "Turkish" "tr"
|
||||||
Section "French"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_fr.qm translations\gpxsee_fr.qm
|
|
||||||
File /oname=translations\qt_fr.qm translations\qt_fr.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "German"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_de.qm translations\gpxsee_de.qm
|
|
||||||
File /oname=translations\qt_de.qm translations\qt_de.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "Polish"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_pl.qm translations\gpxsee_pl.qm
|
|
||||||
File /oname=translations\qt_pl.qm translations\qt_pl.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "Russian"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_ru.qm translations\gpxsee_ru.qm
|
|
||||||
File /oname=translations\qt_ru.qm translations\qt_ru.qm
|
|
||||||
SectionEnd
|
|
||||||
Section "Swedish"
|
|
||||||
CreateDirectory "$INSTDIR\translations"
|
|
||||||
File /oname=translations\gpxsee_sv.qm translations\gpxsee_sv.qm
|
|
||||||
SectionEnd
|
|
||||||
SectionGroupEnd
|
SectionGroupEnd
|
||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
@ -269,24 +215,17 @@ Section "Uninstall"
|
|||||||
RMDir "$SMPROGRAMS\$StartMenuFolder"
|
RMDir "$SMPROGRAMS\$StartMenuFolder"
|
||||||
|
|
||||||
; Remove File associations
|
; Remove File associations
|
||||||
DeleteRegKey HKCR "${REGGPX}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "gpx"
|
||||||
DeleteRegKey HKCR ".gpx"
|
!insertmacro FILE_ASSOCIATION_REMOVE "tcx"
|
||||||
DeleteRegKey HKCR "${REGTCX}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "kml"
|
||||||
DeleteRegKey HKCR ".tcx"
|
!insertmacro FILE_ASSOCIATION_REMOVE "fit"
|
||||||
DeleteRegKey HKCR "${REGKML}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "igc"
|
||||||
DeleteRegKey HKCR ".kml"
|
!insertmacro FILE_ASSOCIATION_REMOVE "nmea"
|
||||||
DeleteRegKey HKCR "${REGFIT}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "plt"
|
||||||
DeleteRegKey HKCR ".fit"
|
!insertmacro FILE_ASSOCIATION_REMOVE "rte"
|
||||||
DeleteRegKey HKCR "${REGIGC}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "wpt"
|
||||||
DeleteRegKey HKCR ".igc"
|
!insertmacro FILE_ASSOCIATION_REMOVE "loc"
|
||||||
DeleteRegKey HKCR "${REGNMEA}"
|
!insertmacro FILE_ASSOCIATION_REMOVE "slf"
|
||||||
DeleteRegKey HKCR ".nmea"
|
|
||||||
DeleteRegKey HKCR "${REGPLT}"
|
|
||||||
DeleteRegKey HKCR ".plt"
|
|
||||||
DeleteRegKey HKCR "${REGRTE}"
|
|
||||||
DeleteRegKey HKCR ".rte"
|
|
||||||
DeleteRegKey HKCR "${REGWPT}"
|
|
||||||
DeleteRegKey HKCR ".wpt"
|
|
||||||
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
23
pkg/macros.nsh
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
; File association
|
||||||
|
!macro FILE_ASSOCIATION_ADD EXT DESC ICON
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "GPXSee.${EXT}"
|
||||||
|
WriteRegStr HKCR "GPXSee.${EXT}" "" "${DESC}"
|
||||||
|
WriteRegStr HKCR "GPXSee.${EXT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,${ICON}"
|
||||||
|
WriteRegStr HKCR "GPXSee.${EXT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\""
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro FILE_ASSOCIATION_REMOVE EXT
|
||||||
|
DeleteRegKey HKCR "GPXSee.${EXT}"
|
||||||
|
DeleteRegKey HKCR ".${EXT}"
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
; Translations
|
||||||
|
!macro LOCALIZATION LANG CODE
|
||||||
|
Section "${LANG}"
|
||||||
|
CreateDirectory "$INSTDIR\translations"
|
||||||
|
File /oname=translations\gpxsee_${CODE}.qm translations\gpxsee_${CODE}.qm
|
||||||
|
!if /FileExists translations\qt_${CODE}.qm
|
||||||
|
File /oname=translations\qt_${CODE}.qm translations\qt_${CODE}.qm
|
||||||
|
!endif
|
||||||
|
SectionEnd
|
||||||
|
!macroend
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map xmlns="http://www.gpxsee.org/map/1">
|
<map xmlns="http://www.gpxsee.org/map/1">
|
||||||
<name>4UMaps</name>
|
<name>4UMaps</name>
|
||||||
<url>http://4umaps.eu/$z/$x/$y.png</url>
|
<url>https://4umaps.com/$z/$x/$y.png</url>
|
||||||
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © 4UMaps.eu</copyright>
|
<copyright>Map data: © OpenStreetMap contributors (ODbL) | Rendering: © 4UMaps.eu</copyright>
|
||||||
<zoom min="2" max="15"/>
|
<zoom min="2" max="15"/>
|
||||||
<bounds bottom="-65"/>
|
<bounds bottom="-65"/>
|
||||||
|
@ -5,26 +5,37 @@
|
|||||||
#include <QNetworkProxyFactory>
|
#include <QNetworkProxyFactory>
|
||||||
#include <QNetworkAccessManager>
|
#include <QNetworkAccessManager>
|
||||||
#include <QLibraryInfo>
|
#include <QLibraryInfo>
|
||||||
|
#include <QSettings>
|
||||||
|
#include "common/programpaths.h"
|
||||||
|
#include "common/config.h"
|
||||||
#include "map/downloader.h"
|
#include "map/downloader.h"
|
||||||
#include "map/ellipsoid.h"
|
#include "map/ellipsoid.h"
|
||||||
#include "map/gcs.h"
|
#include "map/gcs.h"
|
||||||
#include "map/pcs.h"
|
#include "map/pcs.h"
|
||||||
#include "opengl.h"
|
#include "opengl.h"
|
||||||
#include "gui.h"
|
#include "gui.h"
|
||||||
#include "config.h"
|
#include "settings.h"
|
||||||
#include "app.h"
|
#include "app.h"
|
||||||
|
|
||||||
|
|
||||||
App::App(int &argc, char **argv) : QApplication(argc, argv),
|
App::App(int &argc, char **argv) : QApplication(argc, argv),
|
||||||
_argc(argc), _argv(argv)
|
_argc(argc), _argv(argv)
|
||||||
{
|
{
|
||||||
|
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
|
||||||
|
setApplicationName(APP_NAME);
|
||||||
|
#else
|
||||||
|
setApplicationName(QString(APP_NAME).toLower());
|
||||||
|
#endif
|
||||||
|
setApplicationVersion(APP_VERSION);
|
||||||
|
|
||||||
QTranslator *gpxsee = new QTranslator(this);
|
QTranslator *gpxsee = new QTranslator(this);
|
||||||
gpxsee->load(QLocale::system(), "gpxsee", "_", TRANSLATIONS_DIR);
|
gpxsee->load(QLocale::system(), "gpxsee", "_",
|
||||||
|
ProgramPaths::translationsDir());
|
||||||
installTranslator(gpxsee);
|
installTranslator(gpxsee);
|
||||||
|
|
||||||
QTranslator *qt = new QTranslator(this);
|
QTranslator *qt = new QTranslator(this);
|
||||||
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
|
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
|
||||||
qt->load(QLocale::system(), "qt", "_", TRANSLATIONS_DIR);
|
qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir());
|
||||||
#else // Q_OS_WIN32 || Q_OS_MAC
|
#else // Q_OS_WIN32 || Q_OS_MAC
|
||||||
qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
|
qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
|
||||||
QLibraryInfo::TranslationsPath));
|
QLibraryInfo::TranslationsPath));
|
||||||
@ -36,7 +47,21 @@ App::App(int &argc, char **argv) : QApplication(argc, argv),
|
|||||||
#endif // Q_OS_MAC
|
#endif // Q_OS_MAC
|
||||||
|
|
||||||
QNetworkProxyFactory::setUseSystemConfiguration(true);
|
QNetworkProxyFactory::setUseSystemConfiguration(true);
|
||||||
Downloader::setNetworkAccessManager(new QNetworkAccessManager(this));
|
QSettings settings(APP_NAME, APP_NAME);
|
||||||
|
settings.beginGroup(OPTIONS_SETTINGS_GROUP);
|
||||||
|
|
||||||
|
/* The QNetworkAccessManager must be a child of QApplication, otherwise it
|
||||||
|
triggers the following warning on exit (and may probably crash):
|
||||||
|
"QThreadStorage: Thread X exited after QThreadStorage Y destroyed" */
|
||||||
|
Downloader::setNetworkManager(new QNetworkAccessManager(this));
|
||||||
|
#ifdef ENABLE_HTTP2
|
||||||
|
Downloader::enableHTTP2(settings.value(ENABLE_HTTP2_SETTING,
|
||||||
|
ENABLE_HTTP2_DEFAULT).toBool());
|
||||||
|
#endif // ENABLE_HTTP2
|
||||||
|
Downloader::setTimeout(settings.value(CONNECTION_TIMEOUT_SETTING,
|
||||||
|
CONNECTION_TIMEOUT_DEFAULT).toInt());
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
OPENGL_SET_SAMPLES(4);
|
OPENGL_SET_SAMPLES(4);
|
||||||
loadDatums();
|
loadDatums();
|
||||||
loadPCSs();
|
loadPCSs();
|
||||||
@ -49,14 +74,15 @@ App::~App()
|
|||||||
delete _gui;
|
delete _gui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::run()
|
int App::run()
|
||||||
{
|
{
|
||||||
_gui->show();
|
_gui->show();
|
||||||
|
|
||||||
for (int i = 1; i < _argc; i++)
|
QStringList args(arguments());
|
||||||
_gui->openFile(QString::fromLocal8Bit(_argv[i]));
|
for (int i = 1; i < args.count(); i++)
|
||||||
|
_gui->openFile(args.at(i));
|
||||||
|
|
||||||
exec();
|
return exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool App::event(QEvent *event)
|
bool App::event(QEvent *event)
|
||||||
@ -71,41 +97,27 @@ bool App::event(QEvent *event)
|
|||||||
|
|
||||||
void App::loadDatums()
|
void App::loadDatums()
|
||||||
{
|
{
|
||||||
QString ef, df;
|
QString ellipsoidsFile(ProgramPaths::ellipsoidsFile());
|
||||||
|
QString gcsFile(ProgramPaths::gcsFile());
|
||||||
|
|
||||||
if (QFile::exists(USER_ELLIPSOID_FILE))
|
if (ellipsoidsFile.isNull())
|
||||||
ef = USER_ELLIPSOID_FILE;
|
|
||||||
else if (QFile::exists(GLOBAL_ELLIPSOID_FILE))
|
|
||||||
ef = GLOBAL_ELLIPSOID_FILE;
|
|
||||||
else
|
|
||||||
qWarning("No ellipsoids file found.");
|
qWarning("No ellipsoids file found.");
|
||||||
|
if (gcsFile.isNull())
|
||||||
|
qWarning("No GCS file found.");
|
||||||
|
|
||||||
if (QFile::exists(USER_GCS_FILE))
|
if (!ellipsoidsFile.isNull() && !gcsFile.isNull()) {
|
||||||
df = USER_GCS_FILE;
|
Ellipsoid::loadList(ellipsoidsFile);
|
||||||
else if (QFile::exists(GLOBAL_GCS_FILE))
|
GCS::loadList(gcsFile);
|
||||||
df = GLOBAL_GCS_FILE;
|
|
||||||
else
|
|
||||||
qWarning("No datums file found.");
|
|
||||||
|
|
||||||
if (!ef.isNull() && !df.isNull()) {
|
|
||||||
Ellipsoid::loadList(ef);
|
|
||||||
GCS::loadList(df);
|
|
||||||
} else
|
} else
|
||||||
qWarning("Maps based on a datum different from WGS84 won't work.");
|
qWarning("Maps based on a datum different from WGS84 won't work.");
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::loadPCSs()
|
void App::loadPCSs()
|
||||||
{
|
{
|
||||||
QString file;
|
QString pcsFile(ProgramPaths::pcsFile());
|
||||||
|
|
||||||
if (QFile::exists(USER_PCS_FILE))
|
if (pcsFile.isNull())
|
||||||
file = USER_PCS_FILE;
|
|
||||||
else if (QFile::exists(GLOBAL_PCS_FILE))
|
|
||||||
file = GLOBAL_PCS_FILE;
|
|
||||||
else {
|
|
||||||
qWarning("No PCS file found.");
|
qWarning("No PCS file found.");
|
||||||
return;
|
else
|
||||||
}
|
PCS::loadList(pcsFile);
|
||||||
|
|
||||||
PCS::loadList(file);
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ class App : QApplication
|
|||||||
public:
|
public:
|
||||||
App(int &argc, char **argv);
|
App(int &argc, char **argv);
|
||||||
~App();
|
~App();
|
||||||
void run();
|
int run();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool event(QEvent *event);
|
bool event(QEvent *event);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include "config.h"
|
#include "common/util.h"
|
||||||
#include "nicenum.h"
|
#include "font.h"
|
||||||
#include "axisitem.h"
|
#include "axisitem.h"
|
||||||
|
|
||||||
|
|
||||||
@ -36,17 +36,14 @@ Ticks::Ticks(double minValue, double maxValue, int maxCount)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
AxisItem::AxisItem(Type type, QGraphicsItem *parent) : QGraphicsItem(parent)
|
AxisItem::AxisItem(Type type, QGraphicsItem *parent)
|
||||||
|
: QGraphicsItem(parent), _locale(QLocale::system())
|
||||||
{
|
{
|
||||||
_type = type;
|
_type = type;
|
||||||
_size = 0;
|
_size = 0;
|
||||||
|
|
||||||
_font.setPixelSize(FONT_SIZE);
|
_font.setPixelSize(FONT_SIZE);
|
||||||
_font.setFamily(FONT_FAMILY);
|
_font.setFamily(FONT_FAMILY);
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
|
||||||
setCacheMode(QGraphicsItem::DeviceCoordinateCache);
|
|
||||||
#endif // Q_OS_MAC
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AxisItem::setRange(const RangeF &range)
|
void AxisItem::setRange(const RangeF &range)
|
||||||
@ -60,7 +57,7 @@ void AxisItem::setRange(const RangeF &range)
|
|||||||
for (int i = 0; i < ticks.count(); i++) {
|
for (int i = 0; i < ticks.count(); i++) {
|
||||||
Tick &t = _ticks[i];
|
Tick &t = _ticks[i];
|
||||||
t.value = ticks.val(i);
|
t.value = ticks.val(i);
|
||||||
t.boundingBox = fm.tightBoundingRect(QString::number(t.value));
|
t.boundingBox = fm.tightBoundingRect(_locale.toString(t.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
updateBoundingRect();
|
updateBoundingRect();
|
||||||
@ -130,7 +127,7 @@ void AxisItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|||||||
TICK/2, (_size/_range.size()) * (val - _range.min()), -TICK/2);
|
TICK/2, (_size/_range.size()) * (val - _range.min()), -TICK/2);
|
||||||
painter->drawText(((_size/_range.size()) * (val - _range.min()))
|
painter->drawText(((_size/_range.size()) * (val - _range.min()))
|
||||||
- (ts.width()/2), ts.height() + TICK/2 + PADDING,
|
- (ts.width()/2), ts.height() + TICK/2 + PADDING,
|
||||||
QString::number(val));
|
_locale.toString(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
painter->drawText(_size/2 - _labelBB.width()/2, _labelBB.height()
|
painter->drawText(_size/2 - _labelBB.width()/2, _labelBB.height()
|
||||||
@ -149,7 +146,7 @@ void AxisItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|||||||
* (val - _range.min())));
|
* (val - _range.min())));
|
||||||
painter->drawText(-(ts.width() + PADDING + TICK/2),
|
painter->drawText(-(ts.width() + PADDING + TICK/2),
|
||||||
-((_size/_range.size()) * (val - _range.min())) + (ts.height()/2),
|
-((_size/_range.size()) * (val - _range.min())) + (ts.height()/2),
|
||||||
QString::number(val));
|
_locale.toString(val));
|
||||||
}
|
}
|
||||||
|
|
||||||
painter->rotate(-90);
|
painter->rotate(-90);
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QGraphicsItem>
|
#include <QGraphicsItem>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
#include <QLocale>
|
||||||
#include "common/range.h"
|
#include "common/range.h"
|
||||||
|
|
||||||
class AxisItem : public QGraphicsItem
|
class AxisItem : public QGraphicsItem
|
||||||
@ -39,6 +40,7 @@ private:
|
|||||||
QVector<Tick> _ticks;
|
QVector<Tick> _ticks;
|
||||||
QRectF _boundingRect;
|
QRectF _boundingRect;
|
||||||
QFont _font;
|
QFont _font;
|
||||||
|
QLocale _locale;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AXISITEM_H
|
#endif // AXISITEM_H
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#include <QLocale>
|
||||||
#include "data/data.h"
|
#include "data/data.h"
|
||||||
#include "cadencegraphitem.h"
|
#include "cadencegraphitem.h"
|
||||||
#include "cadencegraph.h"
|
#include "cadencegraph.h"
|
||||||
@ -7,7 +8,7 @@ CadenceGraph::CadenceGraph(QWidget *parent) : GraphTab(parent)
|
|||||||
{
|
{
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
GraphView::setYUnits(tr("1/min"));
|
GraphView::setYUnits(tr("rpm"));
|
||||||
setYLabel(tr("Cadence"));
|
setYLabel(tr("Cadence"));
|
||||||
|
|
||||||
setSliderPrecision(1);
|
setSliderPrecision(1);
|
||||||
@ -16,9 +17,11 @@ CadenceGraph::CadenceGraph(QWidget *parent) : GraphTab(parent)
|
|||||||
void CadenceGraph::setInfo()
|
void CadenceGraph::setInfo()
|
||||||
{
|
{
|
||||||
if (_showTracks) {
|
if (_showTracks) {
|
||||||
GraphView::addInfo(tr("Average"), QString::number(avg() * yScale()
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
|
GraphView::addInfo(tr("Average"), l.toString(avg() * yScale()
|
||||||
+ yOffset(), 'f', 1) + UNIT_SPACE + yUnits());
|
+ yOffset(), 'f', 1) + UNIT_SPACE + yUnits());
|
||||||
GraphView::addInfo(tr("Maximum"), QString::number(max() * yScale()
|
GraphView::addInfo(tr("Maximum"), l.toString(max() * yScale()
|
||||||
+ yOffset(), 'f', 1) + UNIT_SPACE + yUnits());
|
+ yOffset(), 'f', 1) + UNIT_SPACE + yUnits());
|
||||||
} else
|
} else
|
||||||
clearInfo();
|
clearInfo();
|
||||||
|
@ -1,13 +1,20 @@
|
|||||||
|
#include <QLocale>
|
||||||
#include "tooltip.h"
|
#include "tooltip.h"
|
||||||
#include "cadencegraphitem.h"
|
#include "cadencegraphitem.h"
|
||||||
|
|
||||||
|
|
||||||
CadenceGraphItem::CadenceGraphItem(const Graph &graph, GraphType type,
|
CadenceGraphItem::CadenceGraphItem(const Graph &graph, GraphType type,
|
||||||
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
{
|
{
|
||||||
qreal sum = 0;
|
qreal sum = 0;
|
||||||
|
_max = graph.first().y();
|
||||||
|
|
||||||
for (int j = 1; j < graph.size(); j++)
|
for (int i = 1; i < graph.size(); i++) {
|
||||||
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
|
qreal y = graph.at(i).y();
|
||||||
|
sum += y * (graph.at(i).s() - graph.at(i-1).s());
|
||||||
|
if (y > _max)
|
||||||
|
_max = y;
|
||||||
|
}
|
||||||
_avg = sum/graph.last().s();
|
_avg = sum/graph.last().s();
|
||||||
|
|
||||||
setToolTip(toolTip());
|
setToolTip(toolTip());
|
||||||
@ -16,11 +23,12 @@ CadenceGraphItem::CadenceGraphItem(const Graph &graph, GraphType type,
|
|||||||
QString CadenceGraphItem::toolTip() const
|
QString CadenceGraphItem::toolTip() const
|
||||||
{
|
{
|
||||||
ToolTip tt;
|
ToolTip tt;
|
||||||
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
tt.insert(tr("Maximum"), QString::number(max(), 'f', 1)
|
tt.insert(tr("Maximum"), l.toString(max(), 'f', 1)
|
||||||
+ UNIT_SPACE + tr("1/min"));
|
+ UNIT_SPACE + tr("rpm"));
|
||||||
tt.insert(tr("Average"), QString::number(avg(), 'f', 1)
|
tt.insert(tr("Average"), l.toString(avg(), 'f', 1)
|
||||||
+ UNIT_SPACE + tr("1/min"));
|
+ UNIT_SPACE + tr("rpm"));
|
||||||
|
|
||||||
return tt.toString();
|
return tt.toString();
|
||||||
}
|
}
|
||||||
|
@ -11,13 +11,13 @@ public:
|
|||||||
CadenceGraphItem(const Graph &graph, GraphType type,
|
CadenceGraphItem(const Graph &graph, GraphType type,
|
||||||
QGraphicsItem *parent = 0);
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
qreal max() const {return -bounds().top();}
|
qreal max() const {return _max;}
|
||||||
qreal avg() const {return _avg;}
|
qreal avg() const {return _avg;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString toolTip() const;
|
QString toolTip() const;
|
||||||
|
|
||||||
qreal _avg;
|
qreal _avg, _max;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CADENCEGRAPHITEM_H
|
#endif // CADENCEGRAPHITEM_H
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
#include <QLocale>
|
||||||
#include "data/data.h"
|
#include "data/data.h"
|
||||||
#include "config.h"
|
|
||||||
#include "tooltip.h"
|
#include "tooltip.h"
|
||||||
#include "elevationgraphitem.h"
|
#include "elevationgraphitem.h"
|
||||||
#include "elevationgraph.h"
|
#include "elevationgraph.h"
|
||||||
@ -54,13 +54,15 @@ void ElevationGraph::setInfo()
|
|||||||
if (std::isnan(max()) || std::isnan(min()))
|
if (std::isnan(max()) || std::isnan(min()))
|
||||||
clearInfo();
|
clearInfo();
|
||||||
else {
|
else {
|
||||||
GraphView::addInfo(tr("Ascent"), QString::number(ascent() * yScale(),
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
|
GraphView::addInfo(tr("Ascent"), l.toString(ascent() * yScale(),
|
||||||
'f', 0) + UNIT_SPACE + yUnits());
|
'f', 0) + UNIT_SPACE + yUnits());
|
||||||
GraphView::addInfo(tr("Descent"), QString::number(descent() * yScale(),
|
GraphView::addInfo(tr("Descent"), l.toString(descent() * yScale(),
|
||||||
'f', 0) + UNIT_SPACE + yUnits());
|
'f', 0) + UNIT_SPACE + yUnits());
|
||||||
GraphView::addInfo(tr("Maximum"), QString::number(max() * yScale(), 'f',
|
GraphView::addInfo(tr("Maximum"), l.toString(max() * yScale(), 'f',
|
||||||
0) + UNIT_SPACE + yUnits());
|
0) + UNIT_SPACE + yUnits());
|
||||||
GraphView::addInfo(tr("Minimum"), QString::number(min() * yScale(), 'f',
|
GraphView::addInfo(tr("Minimum"), l.toString(min() * yScale(), 'f',
|
||||||
0) + UNIT_SPACE + yUnits());
|
0) + UNIT_SPACE + yUnits());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
|
#include <QLocale>
|
||||||
#include "tooltip.h"
|
#include "tooltip.h"
|
||||||
#include "elevationgraphitem.h"
|
#include "elevationgraphitem.h"
|
||||||
|
|
||||||
|
|
||||||
ElevationGraphItem::ElevationGraphItem(const Graph &graph, GraphType type,
|
ElevationGraphItem::ElevationGraphItem(const Graph &graph, GraphType type,
|
||||||
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
{
|
{
|
||||||
_ascent = _descent = 0;
|
_ascent = _descent = 0;
|
||||||
|
_min = _max = graph.first().y();
|
||||||
|
|
||||||
for (int j = 1; j < graph.size(); j++) {
|
for (int j = 1; j < graph.size(); j++) {
|
||||||
qreal cur = graph.at(j).y();
|
qreal cur = graph.at(j).y();
|
||||||
@ -14,6 +17,11 @@ ElevationGraphItem::ElevationGraphItem(const Graph &graph, GraphType type,
|
|||||||
_ascent += cur - prev;
|
_ascent += cur - prev;
|
||||||
if (cur < prev)
|
if (cur < prev)
|
||||||
_descent += prev - cur;
|
_descent += prev - cur;
|
||||||
|
|
||||||
|
if (cur < _min)
|
||||||
|
_min = cur;
|
||||||
|
if (cur > _max)
|
||||||
|
_max = cur;
|
||||||
}
|
}
|
||||||
|
|
||||||
setToolTip(toolTip(Metric));
|
setToolTip(toolTip(Metric));
|
||||||
@ -24,14 +32,15 @@ QString ElevationGraphItem::toolTip(Units units) const
|
|||||||
ToolTip tt;
|
ToolTip tt;
|
||||||
qreal scale = (units == Metric) ? 1.0 : M2FT;
|
qreal scale = (units == Metric) ? 1.0 : M2FT;
|
||||||
QString su = (units == Metric) ? tr("m") : tr("ft");
|
QString su = (units == Metric) ? tr("m") : tr("ft");
|
||||||
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
tt.insert(tr("Ascent"), QString::number(ascent() * scale, 'f', 0)
|
tt.insert(tr("Ascent"), l.toString(ascent() * scale, 'f', 0)
|
||||||
+ UNIT_SPACE + su);
|
+ UNIT_SPACE + su);
|
||||||
tt.insert(tr("Descent"), QString::number(descent() * scale, 'f', 0)
|
tt.insert(tr("Descent"), l.toString(descent() * scale, 'f', 0)
|
||||||
+ UNIT_SPACE + su);
|
+ UNIT_SPACE + su);
|
||||||
tt.insert(tr("Maximum"), QString::number(max() * scale, 'f', 0)
|
tt.insert(tr("Maximum"), l.toString(max() * scale, 'f', 0)
|
||||||
+ UNIT_SPACE + su);
|
+ UNIT_SPACE + su);
|
||||||
tt.insert(tr("Minimum"), QString::number(min() * scale, 'f', 0)
|
tt.insert(tr("Minimum"), l.toString(min() * scale, 'f', 0)
|
||||||
+ UNIT_SPACE + su);
|
+ UNIT_SPACE + su);
|
||||||
|
|
||||||
return tt.toString();
|
return tt.toString();
|
||||||
|
@ -13,15 +13,15 @@ public:
|
|||||||
|
|
||||||
qreal ascent() const {return _ascent;}
|
qreal ascent() const {return _ascent;}
|
||||||
qreal descent() const {return _descent;}
|
qreal descent() const {return _descent;}
|
||||||
qreal min() const {return -bounds().bottom();}
|
qreal min() const {return _min;}
|
||||||
qreal max() const {return -bounds().top();}
|
qreal max() const {return _max;}
|
||||||
|
|
||||||
void setUnits(Units units);
|
void setUnits(Units units);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString toolTip(Units units) const;
|
QString toolTip(Units units) const;
|
||||||
|
|
||||||
qreal _ascent, _descent;
|
qreal _ascent, _descent, _min, _max;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ELEVATIONGRAPHITEM_H
|
#endif // ELEVATIONGRAPHITEM_H
|
||||||
|
@ -22,7 +22,8 @@ ExportDialog::ExportDialog(Export *exp, QWidget *parent)
|
|||||||
int index;
|
int index;
|
||||||
|
|
||||||
_fileSelect = new FileSelectWidget();
|
_fileSelect = new FileSelectWidget();
|
||||||
_fileSelect->setFilter(tr("PDF files (*.pdf);;All files (*)"));
|
_fileSelect->setFilter(tr("PDF files") + " (*.pdf);;" + tr("All files")
|
||||||
|
+ " (*)");
|
||||||
_fileSelect->setFile(_export->fileName);
|
_fileSelect->setFile(_export->fileName);
|
||||||
|
|
||||||
_paperSize = new QComboBox();
|
_paperSize = new QComboBox();
|
||||||
|
@ -13,11 +13,6 @@ FileBrowser::FileBrowser(QObject *parent) : QObject(parent)
|
|||||||
_index = -1;
|
_index = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
FileBrowser::~FileBrowser()
|
|
||||||
{
|
|
||||||
delete _watcher;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FileBrowser::setCurrent(const QString &path)
|
void FileBrowser::setCurrent(const QString &path)
|
||||||
{
|
{
|
||||||
QFileInfo file(path);
|
QFileInfo file(path);
|
||||||
|
@ -13,7 +13,6 @@ class FileBrowser : public QObject
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
FileBrowser(QObject *parent = 0);
|
FileBrowser(QObject *parent = 0);
|
||||||
~FileBrowser();
|
|
||||||
|
|
||||||
void setFilter(const QStringList &filter);
|
void setFilter(const QStringList &filter);
|
||||||
void setCurrent(const QString &path);
|
void setCurrent(const QString &path);
|
||||||
|
7
src/GUI/font.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#ifndef FONT_H
|
||||||
|
#define FONT_H
|
||||||
|
|
||||||
|
#define FONT_FAMILY "Arial"
|
||||||
|
#define FONT_SIZE 12 // px
|
||||||
|
|
||||||
|
#endif // FONT_H
|
@ -46,37 +46,41 @@ QString Format::timeSpan(qreal time, bool full)
|
|||||||
|
|
||||||
QString Format::distance(qreal value, Units units)
|
QString Format::distance(qreal value, Units units)
|
||||||
{
|
{
|
||||||
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
if (units == Imperial) {
|
if (units == Imperial) {
|
||||||
if (value < MIINM)
|
if (value < MIINM)
|
||||||
return QString::number(value * M2FT, 'f', 0) + UNIT_SPACE
|
return l.toString(value * M2FT, 'f', 0) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "ft");
|
+ qApp->translate("Format", "ft");
|
||||||
else
|
else
|
||||||
return QString::number(value * M2MI, 'f', 1) + UNIT_SPACE
|
return l.toString(value * M2MI, 'f', 1) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "mi");
|
+ qApp->translate("Format", "mi");
|
||||||
} else if (units == Nautical) {
|
} else if (units == Nautical) {
|
||||||
if (value < NMIINM)
|
if (value < NMIINM)
|
||||||
return QString::number(value * M2FT, 'f', 0) + UNIT_SPACE
|
return l.toString(value * M2FT, 'f', 0) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "ft");
|
+ qApp->translate("Format", "ft");
|
||||||
else
|
else
|
||||||
return QString::number(value * M2NMI, 'f', 1) + UNIT_SPACE
|
return l.toString(value * M2NMI, 'f', 1) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "nmi");
|
+ qApp->translate("Format", "nmi");
|
||||||
} else {
|
} else {
|
||||||
if (value < KMINM)
|
if (value < KMINM)
|
||||||
return QString::number(value, 'f', 0) + UNIT_SPACE
|
return l.toString(value, 'f', 0) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "m");
|
+ qApp->translate("Format", "m");
|
||||||
else
|
else
|
||||||
return QString::number(value * M2KM, 'f', 1) + UNIT_SPACE
|
return l.toString(value * M2KM, 'f', 1) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "km");
|
+ qApp->translate("Format", "km");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Format::elevation(qreal value, Units units)
|
QString Format::elevation(qreal value, Units units)
|
||||||
{
|
{
|
||||||
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
if (units == Metric)
|
if (units == Metric)
|
||||||
return QString::number(qRound(value)) + UNIT_SPACE
|
return l.toString(qRound(value)) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "m");
|
+ qApp->translate("Format", "m");
|
||||||
else
|
else
|
||||||
return QString::number(qRound(value * M2FT)) + UNIT_SPACE
|
return l.toString(qRound(value * M2FT)) + UNIT_SPACE
|
||||||
+ qApp->translate("Format", "ft");
|
+ qApp->translate("Format", "ft");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +99,8 @@ QString Format::coordinates(const Coordinates &value, CoordinatesFormat type)
|
|||||||
+ deg2DMS(qAbs(value.lon())) + xH;
|
+ deg2DMS(qAbs(value.lon())) + xH;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return QString::number(qAbs(value.lat()), 'f', 5) + yH + ","
|
QLocale l(QLocale::system());
|
||||||
+ QChar(0x00A0) + QString::number(qAbs(value.lon()), 'f', 5) + xH;
|
return l.toString(qAbs(value.lat()), 'f', 5) + yH + ","
|
||||||
|
+ QChar(0x00A0) + l.toString(qAbs(value.lon()), 'f', 5) + xH;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
97
src/GUI/gearratiograph.cpp
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
#include <QLocale>
|
||||||
|
#include "data/data.h"
|
||||||
|
#include "gearratiographitem.h"
|
||||||
|
#include "gearratiograph.h"
|
||||||
|
|
||||||
|
|
||||||
|
GearRatioGraph::GearRatioGraph(QWidget *parent) : GraphTab(parent)
|
||||||
|
{
|
||||||
|
_showTracks = true;
|
||||||
|
|
||||||
|
GraphView::setYUnits("");
|
||||||
|
setYLabel(tr("Gear ratio"));
|
||||||
|
|
||||||
|
setSliderPrecision(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GearRatioGraph::setInfo()
|
||||||
|
{
|
||||||
|
if (_showTracks) {
|
||||||
|
QLocale l(QLocale::system());
|
||||||
|
|
||||||
|
GraphView::addInfo(tr("Most used"), l.toString(top() * yScale(),
|
||||||
|
'f', 2) + UNIT_SPACE + yUnits());
|
||||||
|
GraphView::addInfo(tr("Minimum"), l.toString(min() * yScale(), 'f',
|
||||||
|
2) + UNIT_SPACE + yUnits());
|
||||||
|
GraphView::addInfo(tr("Maximum"), l.toString(max() * yScale(), 'f',
|
||||||
|
2) + UNIT_SPACE + yUnits());
|
||||||
|
} else
|
||||||
|
clearInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<GraphItem*> GearRatioGraph::loadData(const Data &data)
|
||||||
|
{
|
||||||
|
QList<GraphItem*> graphs;
|
||||||
|
|
||||||
|
for (int i = 0; i < data.tracks().count(); i++) {
|
||||||
|
const Graph &graph = data.tracks().at(i)->ratio();
|
||||||
|
|
||||||
|
if (graph.size() < 2) {
|
||||||
|
skipColor();
|
||||||
|
graphs.append(0);
|
||||||
|
} else {
|
||||||
|
GearRatioGraphItem *gi = new GearRatioGraphItem(graph, _graphType);
|
||||||
|
GraphView::addGraph(gi);
|
||||||
|
|
||||||
|
for (QMap<qreal, qreal>::const_iterator it = gi->map().constBegin();
|
||||||
|
it != gi->map().constEnd(); ++it)
|
||||||
|
_map.insert(it.key(), _map.value(it.key()) + it.value());
|
||||||
|
graphs.append(gi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < data.routes().count(); i++) {
|
||||||
|
skipColor();
|
||||||
|
graphs.append(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
setInfo();
|
||||||
|
redraw();
|
||||||
|
|
||||||
|
return graphs;
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal GearRatioGraph::top() const
|
||||||
|
{
|
||||||
|
qreal key = NAN, val = NAN;
|
||||||
|
|
||||||
|
for (QMap<qreal, qreal>::const_iterator it = _map.constBegin();
|
||||||
|
it != _map.constEnd(); ++it) {
|
||||||
|
if (it == _map.constBegin()) {
|
||||||
|
val = it.value();
|
||||||
|
key = it.key();
|
||||||
|
} else if (it.value() > val) {
|
||||||
|
val = it.value();
|
||||||
|
key = it.key();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GearRatioGraph::clear()
|
||||||
|
{
|
||||||
|
_map.clear();
|
||||||
|
|
||||||
|
GraphView::clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void GearRatioGraph::showTracks(bool show)
|
||||||
|
{
|
||||||
|
_showTracks = show;
|
||||||
|
|
||||||
|
showGraph(show);
|
||||||
|
setInfo();
|
||||||
|
|
||||||
|
redraw();
|
||||||
|
}
|
30
src/GUI/gearratiograph.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#ifndef GEARRATIOGRAPH_H
|
||||||
|
#define GEARRATIOGRAPH_H
|
||||||
|
|
||||||
|
#include <QMap>
|
||||||
|
#include "graphtab.h"
|
||||||
|
|
||||||
|
class GearRatioGraph : public GraphTab
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
GearRatioGraph(QWidget *parent = 0);
|
||||||
|
|
||||||
|
QString label() const {return tr("Gear ratio");}
|
||||||
|
QList<GraphItem*> loadData(const Data &data);
|
||||||
|
void clear();
|
||||||
|
void showTracks(bool show);
|
||||||
|
|
||||||
|
private:
|
||||||
|
qreal top() const;
|
||||||
|
qreal min() const {return bounds().top();}
|
||||||
|
qreal max() const {return bounds().bottom();}
|
||||||
|
void setInfo();
|
||||||
|
|
||||||
|
QMap<qreal, qreal> _map;
|
||||||
|
|
||||||
|
bool _showTracks;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // GEARRATIOGRAPH_H
|