1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-07-01 21:39:15 +02:00

Compare commits

...

58 Commits
5.13 ... 5.16

Author SHA1 Message Date
3ce3de119b Updated 4Umaps URL 2018-08-08 00:22:59 +02:00
872ecdfa58 Now building the windows version using Qt 5.11 2018-08-05 23:23:53 +02:00
121a262ea1 Remaining WGS84 deduplication 2018-07-26 23:51:11 +02:00
06c9fbd849 Properly unified the qmake/macros versions 2018-07-24 18:02:36 +02:00
aa928d96e0 Fixed OS X build 2018-07-24 18:00:40 +02:00
004e9bfef3 Fixed QT version handling in build process 2018-07-24 17:23:14 +02:00
34de55cf0c Do the comma substitution only on ASCII files 2018-07-24 17:21:45 +02:00
c0e458a437 Added support for HTTP/2 2018-07-23 23:53:58 +02:00
33739acafe Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-07-23 21:56:29 +02:00
fe4eed8aa2 Fixed error reporting 2018-07-23 21:55:43 +02:00
f5ca757348 Update gpxsee_sv.ts (#139)
new strings translated
2018-07-22 10:19:22 +02:00
476f26752f Added explicit actions menu roles (broken qt heuristics workaround) 2018-07-21 23:25:24 +02:00
588859ca3a Code cleanup 2018-07-21 21:11:37 +02:00
cc8d237786 Translations update (#138) 2018-07-21 19:17:35 +02:00
5dde297210 Version++ 2018-07-21 18:20:48 +02:00
d1469290cf Translations update 2018-07-21 18:19:31 +02:00
51d4284ebe Layout adjustment 2018-07-21 18:11:19 +02:00
531eb256f1 Added statistics window 2018-07-21 16:13:18 +02:00
79388aa753 Improved paths dialogue formating 2018-07-21 14:24:13 +02:00
2980299a2a A better (shorter) directory description 2018-07-21 12:52:52 +02:00
796e61ada4 Improved path info dialogue 2018-07-21 12:24:08 +02:00
90473300e0 Added missing projection parameter handling 2018-07-21 10:08:26 +02:00
5706cdcfa1 Added workaround for broken nakarte.tk maps 2018-07-13 10:10:44 +02:00
d794ee4b22 Includes cleanup 2018-07-13 09:55:36 +02:00
262ee5bb5f Map API cleanup 2018-07-13 09:51:41 +02:00
5547cf668e Make Coverity happy 2018-07-10 08:58:37 +02:00
dd9e42ad27 Update gpxsee_sv.ts (#136)
new strings translated
2018-07-04 08:18:24 +02:00
e192116191 Update README.md 2018-07-03 23:53:05 +02:00
67c8602efd Code cleanup 2018-07-03 20:52:13 +02:00
a324698a67 Localization update 2018-07-03 19:29:28 +02:00
23bf3397b8 Translations update (#134) 2018-07-03 19:26:27 +02:00
db2d0b63e8 Version++ 2018-07-03 19:19:56 +02:00
e7cfeb0d1a Dismiss warnings 2018-07-03 19:16:51 +02:00
366e84c9fc Proper fix for Bryton Rider FIT files
Refactoring
2018-07-03 19:08:46 +02:00
3424b3e265 Added support for gear ratio graphs
Added support for FIT files from Bryton Rider devices
2018-07-03 01:29:14 +02:00
cb80389d74 Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-07-02 18:51:47 +02:00
40276e8b95 Fixed broken path highlighting when digital zoom is set 2018-07-02 18:50:41 +02:00
106904a763 Fixed FIT parser crash 2018-07-02 18:50:13 +02:00
e21d89e998 Update gpxsee_de.ts (#133)
Improved Translation
2018-07-01 23:29:31 +02:00
a432ff3461 Now using a strict horizontal map scale
Code cleanup
2018-06-30 12:14:58 +02:00
201256d882 Fixed loading of OziExplorer maps with missing (default) projection parameters 2018-06-30 12:12:12 +02:00
b2a34bd10f Hardcode web mercator (EPSG 3857) support 2018-06-28 22:12:16 +02:00
63cf4c039a Update gpxsee_sv.ts (#130)
new strings translated
2018-06-28 08:37:24 +02:00
ca97ca392e Merge branch 'master' of https://github.com/tumic0/GPXSee 2018-06-28 08:36:44 +02:00
ec5ad67a3e Added missing cleanup 2018-06-28 08:36:11 +02:00
569ded1e25 Translations update (#129) 2018-06-24 17:29:53 +02:00
8e713a1f06 Retina app icon 2018-06-23 15:53:39 +02:00
f07173ab22 Localization update 2018-06-22 17:41:24 +02:00
cf6d27b1f5 Fixed "zero distance" graph crash
Improved "no graph data" reporting
2018-06-22 17:29:05 +02:00
fc18283172 Added speed data source setting 2018-06-21 20:54:24 +02:00
1cd726691e Fixed broken speed calculation
Optimization
2018-06-20 22:13:56 +02:00
24835db090 Version++ 2018-06-20 20:17:39 +02:00
2352827d9b Fixed broken distance computation 2018-06-20 20:15:22 +02:00
c5a060ed6b Outlier detection is now based on acceleration instead of speed 2018-06-19 23:56:36 +02:00
026cc68bf2 Includes cleanup 2018-06-04 23:40:42 +02:00
ec247d5d1d Added support for OziExplorer files with UTF8 BOMs 2018-06-02 16:41:27 +02:00
815cb6cb91 Code cleanup 2018-06-01 19:07:21 +02:00
ca7016176f Added missing pixmap caching 2018-05-30 22:10:35 +02:00
70 changed files with 2535 additions and 1522 deletions

View File

@ -1,14 +1,14 @@
version: 5.13.{build}
version: 5.16.{build}
configuration: Release
platform: Any CPU
environment:
NSISDIR: C:\Program Files (x86)\NSIS
matrix:
- QTDIR: C:\Qt\5.9\msvc2015
- QTDIR: C:\Qt\5.11\msvc2015
PLATFORM: x86
NSI: gpxsee.nsi
OPENSSLDIR: C:\OpenSSL-Win32\bin
- QTDIR: C:\Qt\5.9\msvc2015_64
- QTDIR: C:\Qt\5.11\msvc2015_64
PLATFORM: x86_amd64
NSI: gpxsee64.nsi
OPENSSLDIR: C:\OpenSSL-Win64\bin

View File

@ -5,7 +5,7 @@ KML, FIT, IGC, NMEA and OziExplorer files.
## Features
* User-definable online maps (OSM/Google tiles, WMTS, WMS).
* Offline maps (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 POI files.
* Print/export to PDF.

View File

@ -1,12 +1,16 @@
TARGET = GPXSee
VERSION = 5.13
VERSION = 5.16
QT += core \
gui \
network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
greaterThan(QT_MAJOR_VERSION, 4): QT += printsupport
lessThan(QT_VERSION, 5.4): QT += opengl
macx: QT += opengl
greaterThan(QT_MAJOR_VERSION, 4) {
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
HEADERS += src/config.h \
src/common/staticassert.h \
@ -49,6 +53,7 @@ HEADERS += src/config.h \
src/GUI/format.h \
src/GUI/cadencegraph.h \
src/GUI/powergraph.h \
src/GUI/gearratiograph.h \
src/GUI/optionsdialog.h \
src/GUI/colorbox.h \
src/GUI/stylecombobox.h \
@ -61,6 +66,7 @@ HEADERS += src/config.h \
src/GUI/temperaturegraphitem.h \
src/GUI/cadencegraphitem.h \
src/GUI/powergraphitem.h \
src/GUI/gearratiographitem.h \
src/GUI/oddspinbox.h \
src/GUI/settings.h \
src/GUI/nicenum.h \
@ -130,7 +136,8 @@ HEADERS += src/config.h \
src/map/geocentric.h \
src/map/mercator.h \
src/map/jnxmap.h \
src/map/krovak.h
src/map/krovak.h \
src/GUI/kv.h
SOURCES += src/main.cpp \
src/common/coordinates.cpp \
src/common/rectc.cpp \
@ -164,6 +171,7 @@ SOURCES += src/main.cpp \
src/GUI/format.cpp \
src/GUI/cadencegraph.cpp \
src/GUI/powergraph.cpp \
src/GUI/gearratiograph.cpp \
src/GUI/optionsdialog.cpp \
src/GUI/colorbox.cpp \
src/GUI/stylecombobox.cpp \
@ -175,6 +183,7 @@ SOURCES += src/main.cpp \
src/GUI/temperaturegraphitem.cpp \
src/GUI/cadencegraphitem.cpp \
src/GUI/powergraphitem.cpp \
src/GUI/gearratiographitem.cpp \
src/GUI/nicenum.cpp \
src/GUI/mapview.cpp \
src/map/maplist.cpp \
@ -228,7 +237,9 @@ SOURCES += src/main.cpp \
src/map/geocentric.cpp \
src/map/mercator.cpp \
src/map/jnxmap.cpp \
src/map/krovak.cpp
src/map/krovak.cpp \
src/map/map.cpp
RESOURCES += gpxsee.qrc
TRANSLATIONS = lang/gpxsee_cs.ts \
lang/gpxsee_sv.ts \
@ -237,6 +248,7 @@ TRANSLATIONS = lang/gpxsee_cs.ts \
lang/gpxsee_fi.ts \
lang/gpxsee_fr.ts \
lang/gpxsee_pl.ts
macx {
ICON = icons/gpxsee.icns
QMAKE_INFO_PLIST = pkg/Info.plist
@ -277,4 +289,5 @@ win32 {
icons/wpt.ico
DEFINES += _USE_MATH_DEFINES
}
DEFINES += APP_VERSION=\\\"$$VERSION\\\"

Binary file not shown.

View File

@ -321,224 +321,230 @@
<translation>Otevřít POI soubor</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Ukončit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Ovládací klávesy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Zavřít</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Znovu načíst</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Zobrazit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Soubor</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>Zavřit POI soubory</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation>Překrývat POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>Zobrazit názvy POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>Zobrazit POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Zobrazit mapu</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Vymazat mezipaměť dlaždic</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Otevřít...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Cesty</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation>Statistika...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>Nahrát POI soubor...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Nahrát mapu...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Následující mapa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Zobrazit cesty</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Zobrazit trasy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Zobrazit navigační body</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Názvy navigačních bodů</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Zobrazit grafy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Zobrazit mřížku</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Zobrazit informace o posuvníku</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Zobrazovat nástrojové lišty</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Celkový čas</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Čistý čas</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Metrické</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Imperiální</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation>Námořní</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation>Desetinné stupně (DD)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation>Stupně a desetinné minuty (DMM)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation>Stupně, minuty, vteřiny (DMS)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Celoobrazovkový režim</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Nastavení...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Následující</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Předchozí</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Poslední</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>První</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>POI soubory</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Zobrazit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Jednotky</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation>Formát souřadnic</translation>
</message>
@ -588,98 +594,105 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation>Globální</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation>Adresář s GCS/PCS soubory:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation>Uživatelské</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation>Statistika</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Otevřít mapový soubor</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Nejsou načteny žádné soubory</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Soubor</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Mapa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>&amp;Graf</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>&amp;POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>&amp;Data</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>&amp;Nastavení</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>N&amp;ápověda</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Adresář s mapami:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>Adresář s POI body:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>Soubor s GCS daty:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>Soubor s PCS daty:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Soubor s daty elipsoidů:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation>Uživatelský adresář:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Trasy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Mapu nelze načíst:</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n soubor</numerusform>
@ -698,17 +711,18 @@
<translation>Verze </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Tisknout...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Exportovat do PDF...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Navigační body</translation>
</message>
@ -718,7 +732,7 @@
<translation>Předchozí soubor</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Body tras</translation>
</message>
@ -749,91 +763,141 @@
<translation>Soubor POI nelze načíst:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Název</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Cesty</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>O aplikaci GPXSee</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Navigace</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Vzdálenost</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Čas</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation>Převodový poměr</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation>Nejpoužívanější</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation>Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation>Maximum</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation>Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation>Maximum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation>Nejpoužívanější</translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>m</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>ft</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation>Data nejsou k dispozici</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>s</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>min</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>h</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Vzdálenost</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Čas</translation>
</message>
@ -1004,13 +1068,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Grafy</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Obecné</translation>
</message>
@ -1145,7 +1209,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>s</translation>
</message>
@ -1159,150 +1223,165 @@
<source>Minimal duration:</source>
<translation>Minimální doba trvání:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation>Vypočítaná ze vzdálenosti/času</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation>Zaznamenaná zařízením</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Filtrování</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Detekce přestávek</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Rychlost</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>POI radius:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Vysoké rozlišení</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Oblast tisku přibližně odpovídá zobrazované oblasti. Přiblížení mapy se nemění.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Přiblížení mapy bude upraveno tak, aby se celý obsah (trasy/body) vešel do oblasti tisku a rozlišení mapy bylo co nejblíže rozlišení tisku.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Název</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Vzdálenost</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Čas</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Čistý čas</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Počet objektů (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation>Samostatná stránka s grafy</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Režim tisku</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Záhlaví</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>Používat OpenGL</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>MB</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Mezipaměť obrázků:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation>Časový limit připojení:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>Systém</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Vzhled</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Data</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Tisk a export</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Nastavení</translation>
</message>

View File

@ -12,7 +12,7 @@
<location filename="../src/GUI/cadencegraph.cpp" line="11"/>
<location filename="../src/GUI/cadencegraph.h" line="13"/>
<source>Cadence</source>
<translation>Frequenz</translation>
<translation>Trittfrequenz</translation>
</message>
<message>
<location filename="../src/GUI/cadencegraph.cpp" line="19"/>
@ -312,34 +312,16 @@
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Kartenverzeichnis:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>POI-Verzeichnis:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>GCS-Datei:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>PCS-Datei:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Ellipsoidendatei:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation>Benutzerverzeichnis:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="669"/>
<source>Open file</source>
@ -351,224 +333,230 @@
<translation>POI Datei öffnen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Beenden</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Tastaturkürzel</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Schließen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Neu Laden</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Ansicht</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Datei</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>POI-Datei schließen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation>POI überlappen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>POI-Labels anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>POIs anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Karte anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Tile-Cache bereinigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Öffnen...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Pfade</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation>Statistiken...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>POI-Datei laden...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Karte laden...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Nächste Karte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Strecken anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Routen anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Wegpunkte anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Wegpunkt Labels</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Graphen anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Gitter anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Schieberinfo anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Toolbars anzeigen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Gesamtzeit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Bewegungszeit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Metrisch</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Imperial</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation>Nautisch</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation>Dezimalgrad (DD)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation>Grad und Dezimalminuten (DMM)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation>Grad, Minuten, Sekunden (DMS)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Vollbildmodus</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Einstellungen...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Nächste</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Vorherige</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Letzte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>Erste</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>POI-Dateien</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Anzeige</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Einheiten</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation>Koordinatenformate</translation>
</message>
@ -618,22 +606,44 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation>Global</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation>GCS/PCS-Verzeichnis:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation>Benutzerspezifisch</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation>Statistiken</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Karte Datei öffnen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Fehler beim Laden der Karte-Datei:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Keine Dateien geladen</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n Datei</numerusform>
@ -642,12 +652,15 @@
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Routen</translation>
</message>
@ -662,17 +675,18 @@
<translation>Version </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Drucken...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Als PDF exportieren...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Wegpunkte</translation>
</message>
@ -682,42 +696,42 @@
<translation>Vorherige Datei</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Routen Wegpunkte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Datei</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Map</translation>
<translation>&amp;Karte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>&amp;Graph</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>&amp;POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>D&amp;ata</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>&amp;Einstellungen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>&amp;Hilfe</translation>
</message>
@ -748,91 +762,141 @@
<translation>Fehler beim Laden der POI-Datei:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Strecken</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>Über GPXSee</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Navigation</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Distanz</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Zeit</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation>Übersetzungsverhältnis</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation>Meist genutzt</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation>Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation>Maximum</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation>Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation>Maximum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation>Meist genutzt</translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>m</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>ft</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation>Keine Daten verfügbar</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>sek</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>min</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>tim</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Distanz</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Zeit</translation>
</message>
@ -1003,13 +1067,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Graphen</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
@ -1144,7 +1208,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>sek</translation>
</message>
@ -1158,150 +1222,165 @@
<source>Minimal duration:</source>
<translation>Minimale Dauer:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation>Berechnet aus Entfernung/Zeit</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation>Aufgezeichnet von Gerät</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Datenfilterung</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Pausenerkennung</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Geschwindigkeit</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>POI-Radius:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Hohe Auflösung</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Der Druckbereich ist circa der Anzeigebereich. Das Karten-Zoom ändert sich nicht.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Das Karten-Zoom ändert sich so, dass der ganze Inhalt (Strecken/Wegpunkte) in den Druckbereich passen und die Kartenauflösung so nah wie möglich an der Druckauflösung ist.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Distanz</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Zeit</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Bewegungszeit</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Elementanzahl (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation>Separate Seite für Graphen</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Druckmodus</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Kopfzeile</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>OpenGL verwenden</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>MB</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Bild-Cache größe:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation>Verbindungs-Timeout:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Erscheinungsbild</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Daten</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Druck &amp; Export</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Einstellungen</translation>
</message>

View File

@ -321,224 +321,230 @@
<translation>Avaa POI-tiedosto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Lopeta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Näppäimistön säätimet</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Sulje</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Lataa uudelleen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Näytä</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Tiedosto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>Sulje POI-tiedostot</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>Näytä POI:n nimiöt</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>Näytä POI:t</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Näytä kartta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Tyhjennä välimuisti</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Avaa...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Tiedostopolut</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation>Tilasto...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>Lataa POI-tiedosto...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Lataa kartta...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Seuraava kartta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Näytä jäljet</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Näytä reitit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Näytä reittipisteet</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Reittipisteen nimiöt</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Näytä kaaviokuvat</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Näytä ruudukko</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Näytä liukusäätimen arvo</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Näytä työkalupalkit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Kokonaisaika</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Liikkumisaika</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Metriset</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Brittiläiset</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation>Merelliset</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation>Desimaaliasteet (DD)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation>Asteet, desimaaliminuutit (DMM)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation>Asteet, minuutit, sekunnit (DMS)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Kokoruututila</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Valinnat...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Seuraava</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Edellinen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Viimeinen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>Ensimmäinen</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>POI-tiedostot</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Näytä</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Yksiköt</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation>Koordinaattien muoto</translation>
</message>
@ -588,98 +594,105 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation>Globaaliset</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation>GCS/PCS:n hakemisto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation>Käyttäjäkohtaiset</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation>Tilasto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Avaa karttatiedosto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Yhtään tiedostoja ei ladattu</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Päivämäärä</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Tiedosto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Kartat</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>Kaa&amp;viokuva</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>&amp;POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>Tie&amp;dot</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>&amp;Asetukset</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>&amp;Ohje</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Karttojen hakemisto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>POI:n hakemisto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>GCS-tiedosto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>PCS-tiedosto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Ellipsoids-tiedosto:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Reitit</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Virhe ladattaessa karttaa:</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n tiedosto</numerusform>
@ -697,17 +710,18 @@
<translation>Versio </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Tulosta...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Vie PDF:ksi...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Reittipisteet</translation>
</message>
@ -717,7 +731,7 @@
<translation>Edellinen tiedosto</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Reittipisteet</translation>
</message>
@ -748,91 +762,141 @@
<translation>Virhe ladattaessa POI-tiedostoa:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Nimi</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Jäljet</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>Tietoja GPXSee:stä</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Navigointi</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Etäisyys</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Aika</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation>Välityssuhde</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation>Eniten käytetty</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation>Minimi</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation>Maksimi</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation>Minimi</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation>Maksimi</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation>Eniten käytetty</translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>m</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>ft</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation>Tietoja ei ole saatavilla</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>mpk</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>s</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>min</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>t</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Etäisyys</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Aika</translation>
</message>
@ -1003,13 +1067,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Kaaviokuvat</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Yleinen</translation>
</message>
@ -1144,7 +1208,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>s</translation>
</message>
@ -1158,150 +1222,165 @@
<source>Minimal duration:</source>
<translation>Minimikesto:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation>Laskettu etäisyydestä/ajasta</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation>Tallennettu laitteella</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Suodatus</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Pysähdysten havaitseminen</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Vauhti</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>mpk</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>POI:n säde:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Korkea erotuskyky</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Nimi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Päivämäärä</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Etäisyys</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Aika</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Liikkumisaika</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Kohteiden määrä (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Tulostustila</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Otsikko</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>Käytä OpenGL</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>MT</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Kuvavälimuistin koko:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation>Yhteyden aikakatkaisu:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>Järjestelmä</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Ulkoasu</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Tiedot</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Tulostus &amp; vienti</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Valinnat</translation>
</message>

View File

@ -312,34 +312,16 @@
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Dossier des cartes :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>Dossier des POI:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>Fichier GCS :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>Fichier PCS :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Fichier des ellipsoïdes :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation>Dossier de l&apos;utilisateur :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="669"/>
<source>Open file</source>
@ -351,224 +333,230 @@
<translation>Ouvrir un fichier POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Quitter</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Raccourcis clavier</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Fermer</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Actualiser</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Afficher</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Fichier</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>Fermer les fichiers POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation>Superposer les POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>Afficher les notes des POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>Afficher les POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Afficher la carte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Effacer les tuiles en cache</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Ouvrir...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Chemin d&apos;accès</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>Charger un fichier POI...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Charger une carte...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Carte suivante</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Afficher la trace</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Afficher la route</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Afficher les points de jalonnement</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Étiquettes des jalons</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Afficher les graphes</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Afficher la grille</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Afficher les infos du curseur</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Afficher la barre d&apos;outils</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Durée totale</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Durée en déplacement</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Métrique</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Impérial</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Mode plein écran</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Options...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Suivant</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Précèdant</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Dernier</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>Premier</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>Fichiers POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Affichage</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Système d&apos;unités</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation type="unfinished"></translation>
</message>
@ -618,22 +606,44 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Ouvrir un fichier de carte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Erreur lors du chargement de la carte :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Aucun fichier chargé</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n fichier</numerusform>
@ -642,12 +652,15 @@
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Date</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Routes</translation>
</message>
@ -662,17 +675,18 @@
<translation>Version </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Imprimer...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Exporter au format PDF...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Points de jalonnement</translation>
</message>
@ -682,42 +696,42 @@
<translation>Fichier précédent</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Jalons de route</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Fichier</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Carte</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>&amp;Graphe</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>&amp;POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>&amp;Données</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>Pa&amp;ramètres</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>&amp;Aide</translation>
</message>
@ -748,91 +762,141 @@
<translation>Erreur lors du chargement du fichier POI :</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Traces</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>À propos de GPXSee</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Navigation</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Distance</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Temps</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation type="unfinished">Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation type="unfinished">Maximum</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation type="unfinished">Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation type="unfinished">Maximum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>m</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>pied</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>s</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>min</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>h</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Distance</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Temps</translation>
</message>
@ -1003,13 +1067,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Graphe</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Général</translation>
</message>
@ -1144,7 +1208,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>s</translation>
</message>
@ -1158,150 +1222,165 @@
<source>Minimal duration:</source>
<translation>Durée minimale :</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Filtrage</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Détection des arrêts</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Vitesse</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>Rayon des POI :</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Résolution élevée</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>La zone d&apos;impression est presque celle affichée. L&apos;échelle reste la même.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>L&apos;échelle est ajustée pour que tout le contenu (traces et points de jalonnement) rentre dans la zone d&apos;impression tout en gardant proches les résolutions d&apos;impression et de carte.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Nom</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Date</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Distance</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Durée</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Durée en déplacement</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Nombre d&apos;éléments (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation>Sauter une page pour les graphes</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Mode d&apos;impression</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Entête</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>Utiliser OpenGL</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>MB</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Volume du cache à images :</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>Système</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Apparence</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Données</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Imprimer et exporter</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Options</translation>
</message>

View File

@ -321,224 +321,230 @@
<translation>Otwórz plik POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Zakończ</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Elementy sterujące klawiatury</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Zamknij</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Odśwież</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Pokaż</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Plik</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>Zamknij pliki POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation>Nakładka POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>Pokaż etykiety POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>Pokaż punkty POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Pokaż mapę</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Wyczyść pamięć podręczną kafelków</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Otwórz...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Ścieżki</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>Załaduj plik POI...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Załaduj mapę...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Następna mapa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Pokaż ślady</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Pokaż trasy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Pokaż punkty nawigacyjne</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Etykiety punktów nawigacyjnych</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Pokaż wykresy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Pokaż siatkę</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Pokaż informację o suwaku</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Pokaż paski narzędzi</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Całkowity czas</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Czas ruchu</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Metryczne</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Imperialne</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation>Morskie</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation>Stopnie dziesiętne (DD)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation>Stopnie i minuty dziesiętne (DMM)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation>Stopnie, minuty, sekundy (DMS)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Tryb pełnoekranowy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Opcje...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Następny</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Poprzedni</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Ostatni</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>Pierwszy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>Pliki POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Wyświetlanie</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Jednostki</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation>Format współrzędnych</translation>
</message>
@ -588,98 +594,105 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Otwórz plik mapy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Nie załadowano żadnych plików</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Data</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Plik</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Mapa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>&amp;Wykres</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>P&amp;OI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>&amp;Dane</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>&amp;Ustawienia</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>Pomo&amp;c</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Katalog z mapami:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>Katalog z POI:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>Plik GCS:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>Plik PCS:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Plik elipsoid:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation>Katalog użytkownika:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Trasy</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Wystąpił błąd podczas ładowania mapy:</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n plik</numerusform>
@ -698,17 +711,18 @@
<translation>Wersja </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Drukuj...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Eksportuj do PDF...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Punkty nawigacyjne</translation>
</message>
@ -718,7 +732,7 @@
<translation>Poprzedni plik</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Punkty trasy</translation>
</message>
@ -749,91 +763,141 @@
<translation>Błąd podczas ładowania pliku POI:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Nazwa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Ślady</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>O programie GPXSee</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Nawigacja</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Dystans</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Czas</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation type="unfinished">Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation type="unfinished">Maksimum</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation type="unfinished">Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation type="unfinished">Maksimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>m</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>ft</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>s</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>min</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>h</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Dystans</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Czas</translation>
</message>
@ -1004,13 +1068,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Wykresy</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
@ -1145,7 +1209,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>s</translation>
</message>
@ -1159,150 +1223,165 @@
<source>Minimal duration:</source>
<translation>Minimalny czas trwania:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Filtrowanie</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Wykrywanie postoju</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Prędkość</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>Promień POI:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Wysoka rozdzielczość</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Wydrukowany obszar jest w przybliżeniu obszarem wyświetlania. Poziom powiększenia mapy nie zmienia się.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Poziom powiększenia mapy zostanie dostosowany w taki sposób, aby cała zawartość (ścieżki/punkty) wchodziła do drukowanego obszaru, a rozdzielczość mapy była jak najbliższa rozdzielczości wydruku.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Nazwa</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Data</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Dystans</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Czas</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Czas ruchu</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Liczba elementów (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation>Oddzielna strona wykresu</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Tryb wydruku</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Nagłówek</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>Używaj OpenGL</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>MB</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Rozmiar pamięci podręcznej obrazu:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation>Limit czasu połączenia:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Wygląd</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Dane</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Drukowanie i eksport</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Opcje</translation>
</message>

View File

@ -321,224 +321,230 @@
<translation>Открыть файл с точками POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Выход</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Управление с помощью клавиатуры</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Обновить</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Показать</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Файл</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>Закрыть файлы с точками POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation>Наложение точек POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>Показать подписи к точкам POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>Показать точки POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Показать карту</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Очистить кэш</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Открыть...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Пути</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation>Статистика...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>Загрузить файл с точками POI...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Загрузить карту...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Следующая карта</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Показать треки</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Показать маршруты</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Показать точки</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Подписи точек</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Показать графики</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Показать сетку</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Показать значение на слайдере</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Показывать панели инструментов</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Общее время</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Время движения</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Метрические</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Британские</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation>Морские</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation>Десятичные градусы (DD)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation>Градусы, десятичные минуты (DMM)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation>Градусы, минуты, секунды (DMS)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Полноэкранный режим</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Параметры...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Следующий</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Предыдущий</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Последний</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>Первый</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>Файлы с точками POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Отображать</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Единицы</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation>Формат координат</translation>
</message>
@ -588,98 +594,105 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation>Глобальные</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation>Директория с GCS/PCS:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation>Пользовательские</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation>Статистика</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Открыть файл карты</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Нет загруженных файлов</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Карты</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>&amp;График</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>&amp;Точки POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>&amp;Данные</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>&amp;Параметры</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>&amp;Справка</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Директория с картами:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>Директория с POI:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>GCS файл:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>PCS файл:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Ellipsoids файл:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation>Каталог пользовательских настроек:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Маршруты</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Ошибка загрузки карты:</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n файл</numerusform>
@ -698,17 +711,18 @@
<translation>Версия </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Печать...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Экспорт в PDF...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Точки</translation>
</message>
@ -718,7 +732,7 @@
<translation>Предыдущий файл</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Маршрутные точки</translation>
</message>
@ -749,91 +763,141 @@
<translation>Ошибка загрузки файла с точками POI:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Треки</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>О GPXSee</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Навигация</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Расстояние</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Время</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation>Передаточное отношение</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation>Чаще всего используемое</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation>Минимум</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation>Максимум</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation>Минимум</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation>Максимум</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation>Чаще всего используемое</translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>м</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>км</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>фт</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation>Данные отсутствуют</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>мл</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>мор. мл</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>с</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>мин</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>ч</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Расстояние</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Время</translation>
</message>
@ -844,7 +908,7 @@
<location filename="../src/GUI/heartrategraph.cpp" line="11"/>
<location filename="../src/GUI/heartrategraph.h" line="13"/>
<source>Heart rate</source>
<translation>Частота сердечных сокращений</translation>
<translation>Пульс</translation>
</message>
<message>
<location filename="../src/GUI/heartrategraph.cpp" line="10"/>
@ -1004,13 +1068,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Графики</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Общие</translation>
</message>
@ -1096,7 +1160,7 @@
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="254"/>
<source>Heart rate:</source>
<translation>Частота сердечных сокращений:</translation>
<translation>Пульс:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="255"/>
@ -1145,7 +1209,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>с</translation>
</message>
@ -1159,150 +1223,165 @@
<source>Minimal duration:</source>
<translation>Минимальная продолжительность:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation>Вычисленная из расстояния/времени</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation>Записанная устройством</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Фильтрация</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Обнаружение остановок</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Скорость</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>мл</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>мор. мл</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>км</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>Радиус точки POI:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>Точки POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Высокое разрешение</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Печатная область примерно совпадает с областью отображения. Уровень приближения карты не изменяется.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Уровень приближения будет изменен так, чтобы всё содержимое (треки/точки) уместились в печатную область и разрешение карты было бы как можно ближе к разрешению печати.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Расстояние</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Время</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Время движения</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Количество объектов (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation>Отдельная страница с графиком</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Режим печати</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Заголовок</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>Использовать OpenGL</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>МБ</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Размер кэша изображений:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation>Таймаут соединения:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Внешний вид</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Данные</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Печать и экспорт</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Параметры</translation>
</message>

View File

@ -312,34 +312,16 @@
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="650"/>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Map directory:</source>
<translation>Kartmapp:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="652"/>
<location filename="../src/GUI/gui.cpp" line="658"/>
<source>POI directory:</source>
<translation>POI-mapp:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<source>GCS file:</source>
<translation>GCS-fil:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="655"/>
<source>PCS file:</source>
<translation>PCS-fil:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="657"/>
<source>Ellipsoids file:</source>
<translation>Ellipsoids-fil:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>User override directory:</source>
<translation>Användarspecificerad mapp:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="669"/>
<source>Open file</source>
@ -351,224 +333,230 @@
<translation>Öppna POI-fil</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="202"/>
<location filename="../src/GUI/gui.cpp" line="196"/>
<source>Quit</source>
<translation>Avsluta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="211"/>
<location filename="../src/GUI/gui.cpp" line="205"/>
<location filename="../src/GUI/gui.cpp" line="612"/>
<location filename="../src/GUI/gui.cpp" line="613"/>
<source>Keyboard controls</source>
<translation>Snabbtangenter</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="236"/>
<location filename="../src/GUI/gui.cpp" line="230"/>
<source>Close</source>
<translation>Stäng</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="242"/>
<location filename="../src/GUI/gui.cpp" line="236"/>
<source>Reload</source>
<translation>Uppdatera</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="524"/>
<location filename="../src/GUI/gui.cpp" line="523"/>
<source>Show</source>
<translation>Visa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="518"/>
<location filename="../src/GUI/gui.cpp" line="517"/>
<source>File</source>
<translation>Arkiv</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="253"/>
<location filename="../src/GUI/gui.cpp" line="251"/>
<source>Close POI files</source>
<translation>Stäng POI-filer</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="255"/>
<location filename="../src/GUI/gui.cpp" line="253"/>
<source>Overlap POIs</source>
<translation>Överlappa POI:er</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="259"/>
<location filename="../src/GUI/gui.cpp" line="257"/>
<source>Show POI labels</source>
<translation>Visa POI-namn</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="264"/>
<location filename="../src/GUI/gui.cpp" line="262"/>
<source>Show POIs</source>
<translation>Visa POI:er</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="273"/>
<location filename="../src/GUI/gui.cpp" line="271"/>
<source>Show map</source>
<translation>Visa karta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="283"/>
<location filename="../src/GUI/gui.cpp" line="281"/>
<source>Clear tile cache</source>
<translation>Rensa kart-cache</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="220"/>
<location filename="../src/GUI/gui.cpp" line="214"/>
<source>Open...</source>
<translation>Öppna...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="209"/>
<location filename="../src/GUI/gui.cpp" line="203"/>
<location filename="../src/GUI/gui.cpp" line="646"/>
<location filename="../src/GUI/gui.cpp" line="647"/>
<source>Paths</source>
<translation>Sökvägar</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="250"/>
<location filename="../src/GUI/gui.cpp" line="241"/>
<source>Statistics...</source>
<translation>Statistik...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="248"/>
<source>Load POI file...</source>
<translation>Läs in POI-fil...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="281"/>
<location filename="../src/GUI/gui.cpp" line="279"/>
<source>Load map...</source>
<translation>Läs in karta...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="287"/>
<location filename="../src/GUI/gui.cpp" line="291"/>
<location filename="../src/GUI/gui.cpp" line="285"/>
<location filename="../src/GUI/gui.cpp" line="289"/>
<location filename="../src/GUI/gui.cpp" line="629"/>
<source>Next map</source>
<translation>Nästa karta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="301"/>
<location filename="../src/GUI/gui.cpp" line="299"/>
<source>Show tracks</source>
<translation>Visa spår</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="305"/>
<location filename="../src/GUI/gui.cpp" line="303"/>
<source>Show routes</source>
<translation>Visa rutter</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="309"/>
<location filename="../src/GUI/gui.cpp" line="307"/>
<source>Show waypoints</source>
<translation>Visa vägpunkter</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="313"/>
<location filename="../src/GUI/gui.cpp" line="311"/>
<source>Waypoint labels</source>
<translation>Vägpunktsnamn</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="324"/>
<location filename="../src/GUI/gui.cpp" line="322"/>
<source>Show graphs</source>
<translation>Visa diagram</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="344"/>
<location filename="../src/GUI/gui.cpp" line="342"/>
<source>Show grid</source>
<translation>Visa stödlinjer</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="348"/>
<location filename="../src/GUI/gui.cpp" line="346"/>
<source>Show slider info</source>
<translation>Visa reglageinfo</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="354"/>
<location filename="../src/GUI/gui.cpp" line="352"/>
<source>Show toolbars</source>
<translation>Visa verktygsfält</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="360"/>
<location filename="../src/GUI/gui.cpp" line="358"/>
<source>Total time</source>
<translation>Total tid</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="365"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="363"/>
<location filename="../src/GUI/gui.cpp" line="955"/>
<location filename="../src/GUI/gui.cpp" line="1020"/>
<source>Moving time</source>
<translation>Förflyttningstid</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="372"/>
<location filename="../src/GUI/gui.cpp" line="370"/>
<source>Metric</source>
<translation>Meter</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="377"/>
<location filename="../src/GUI/gui.cpp" line="375"/>
<source>Imperial</source>
<translation>Imperial</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="382"/>
<location filename="../src/GUI/gui.cpp" line="380"/>
<source>Nautical</source>
<translation>Nautiska</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="389"/>
<location filename="../src/GUI/gui.cpp" line="387"/>
<source>Decimal degrees (DD)</source>
<translation>Decimala grader (DD)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="394"/>
<location filename="../src/GUI/gui.cpp" line="392"/>
<source>Degrees and decimal minutes (DMM)</source>
<translation>Grader och decimala minuter (DMM)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="400"/>
<location filename="../src/GUI/gui.cpp" line="398"/>
<source>Degrees, minutes, seconds (DMS)</source>
<translation>Grader, minuter, sekunder (DMS)</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="405"/>
<location filename="../src/GUI/gui.cpp" line="403"/>
<source>Fullscreen mode</source>
<translation>Helskärmsläge</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="411"/>
<location filename="../src/GUI/gui.cpp" line="409"/>
<source>Options...</source>
<translation>Alternativ...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="417"/>
<location filename="../src/GUI/gui.cpp" line="415"/>
<source>Next</source>
<translation>Nästa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="420"/>
<location filename="../src/GUI/gui.cpp" line="418"/>
<source>Previous</source>
<translation>Föregående</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="424"/>
<location filename="../src/GUI/gui.cpp" line="422"/>
<source>Last</source>
<translation>Sista</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="427"/>
<location filename="../src/GUI/gui.cpp" line="425"/>
<source>First</source>
<translation>Första</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="467"/>
<location filename="../src/GUI/gui.cpp" line="466"/>
<source>POI files</source>
<translation>POI-filer</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="479"/>
<location filename="../src/GUI/gui.cpp" line="478"/>
<source>Display</source>
<translation>Visa</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="491"/>
<location filename="../src/GUI/gui.cpp" line="490"/>
<source>Units</source>
<translation>Enhet</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="495"/>
<location filename="../src/GUI/gui.cpp" line="494"/>
<source>Coordinates format</source>
<translation>Koordinatformat</translation>
</message>
@ -618,22 +606,44 @@
<translation>Zoom</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1152"/>
<location filename="../src/GUI/gui.cpp" line="650"/>
<source>Global</source>
<translation>Övergripande</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="654"/>
<location filename="../src/GUI/gui.cpp" line="660"/>
<source>GCS/PCS directory:</source>
<translation>GCS-/PCS-mapp:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="656"/>
<source>User-specific</source>
<translation>Användarspecifik</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="976"/>
<location filename="../src/GUI/gui.cpp" line="977"/>
<source>Statistics</source>
<translation>Statistik</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1219"/>
<source>Open map file</source>
<translation>Öppna kartfil</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1181"/>
<location filename="../src/GUI/gui.cpp" line="1248"/>
<source>Error loading map:</source>
<translation>Fel vid inläsning av karta:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="1192"/>
<location filename="../src/GUI/gui.cpp" line="1259"/>
<source>No files loaded</source>
<translation>Inga filer inlästa</translation>
</message>
<message numerus="yes">
<location filename="../src/GUI/gui.cpp" line="1196"/>
<location filename="../src/GUI/gui.cpp" line="1263"/>
<source>%n files</source>
<translation>
<numerusform>%n filer</numerusform>
@ -642,12 +652,15 @@
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="939"/>
<location filename="../src/GUI/gui.cpp" line="942"/>
<location filename="../src/GUI/gui.cpp" line="943"/>
<location filename="../src/GUI/gui.cpp" line="1006"/>
<location filename="../src/GUI/gui.cpp" line="1009"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="931"/>
<location filename="../src/GUI/gui.cpp" line="930"/>
<location filename="../src/GUI/gui.cpp" line="998"/>
<source>Routes</source>
<translation>Rutter</translation>
</message>
@ -662,17 +675,18 @@
<translation>Version </translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="225"/>
<location filename="../src/GUI/gui.cpp" line="219"/>
<source>Print...</source>
<translation>Skriv ut...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="230"/>
<location filename="../src/GUI/gui.cpp" line="224"/>
<source>Export to PDF...</source>
<translation>Exportera till PDF...</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="933"/>
<location filename="../src/GUI/gui.cpp" line="1000"/>
<source>Waypoints</source>
<translation>Vägpunkter</translation>
</message>
@ -682,42 +696,42 @@
<translation>Föregående fil</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="317"/>
<location filename="../src/GUI/gui.cpp" line="315"/>
<source>Route waypoints</source>
<translation>Ruttvägpunkter</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="435"/>
<location filename="../src/GUI/gui.cpp" line="433"/>
<source>&amp;File</source>
<translation>&amp;Arkiv</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="449"/>
<location filename="../src/GUI/gui.cpp" line="448"/>
<source>&amp;Map</source>
<translation>&amp;Karta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="457"/>
<location filename="../src/GUI/gui.cpp" line="456"/>
<source>&amp;Graph</source>
<translation>&amp;Diagram</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="466"/>
<location filename="../src/GUI/gui.cpp" line="465"/>
<source>&amp;POI</source>
<translation>&amp;POI</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="478"/>
<location filename="../src/GUI/gui.cpp" line="477"/>
<source>&amp;Data</source>
<translation>Da&amp;ta</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="486"/>
<source>&amp;Settings</source>
<translation>&amp;Inställningar</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="505"/>
<location filename="../src/GUI/gui.cpp" line="504"/>
<source>&amp;Help</source>
<translation>&amp;Hjälp</translation>
</message>
@ -748,91 +762,141 @@
<translation>Fel vid inläsning av POI-fil:</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="925"/>
<location filename="../src/GUI/gui.cpp" line="992"/>
<source>Name</source>
<translation>Namn</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="929"/>
<location filename="../src/GUI/gui.cpp" line="927"/>
<location filename="../src/GUI/gui.cpp" line="996"/>
<source>Tracks</source>
<translation>Spår</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="214"/>
<location filename="../src/GUI/gui.cpp" line="208"/>
<location filename="../src/GUI/gui.cpp" line="591"/>
<source>About GPXSee</source>
<translation>Om GPXSee</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="529"/>
<location filename="../src/GUI/gui.cpp" line="528"/>
<source>Navigation</source>
<translation>Navigation</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="332"/>
<location filename="../src/GUI/gui.cpp" line="949"/>
<location filename="../src/GUI/gui.cpp" line="330"/>
<location filename="../src/GUI/gui.cpp" line="950"/>
<location filename="../src/GUI/gui.cpp" line="1016"/>
<source>Distance</source>
<translation>Avstånd</translation>
</message>
<message>
<location filename="../src/GUI/gui.cpp" line="338"/>
<location filename="../src/GUI/gui.cpp" line="488"/>
<location filename="../src/GUI/gui.cpp" line="951"/>
<location filename="../src/GUI/gui.cpp" line="336"/>
<location filename="../src/GUI/gui.cpp" line="487"/>
<location filename="../src/GUI/gui.cpp" line="953"/>
<location filename="../src/GUI/gui.cpp" line="1018"/>
<source>Time</source>
<translation>Tid</translation>
</message>
</context>
<context>
<name>GearRatioGraph</name>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="11"/>
<location filename="../src/GUI/gearratiograph.h" line="14"/>
<source>Gear ratio</source>
<translation>Utväxling</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="19"/>
<source>Most used</source>
<translation>Mest använd</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="21"/>
<source>Minimum</source>
<translation>Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiograph.cpp" line="23"/>
<source>Maximum</source>
<translation>Maximum</translation>
</message>
</context>
<context>
<name>GearRatioGraphItem</name>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="34"/>
<source>Minimum</source>
<translation>Minimum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="35"/>
<source>Maximum</source>
<translation>Maximum</translation>
</message>
<message>
<location filename="../src/GUI/gearratiographitem.cpp" line="36"/>
<source>Most used</source>
<translation>Mest använd</translation>
</message>
</context>
<context>
<name>GraphView</name>
<message>
<location filename="../src/GUI/graphview.cpp" line="125"/>
<location filename="../src/GUI/graphview.cpp" line="127"/>
<source>m</source>
<translation>m</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="128"/>
<location filename="../src/GUI/graphview.cpp" line="130"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="109"/>
<location filename="../src/GUI/graphview.cpp" line="117"/>
<location filename="../src/GUI/graphview.cpp" line="111"/>
<location filename="../src/GUI/graphview.cpp" line="119"/>
<source>ft</source>
<translation>ft</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="112"/>
<location filename="../src/GUI/graphview.cpp" line="46"/>
<source>Data not available</source>
<translation>Ingen data tillgänglig</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="114"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="120"/>
<location filename="../src/GUI/graphview.cpp" line="122"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="134"/>
<location filename="../src/GUI/graphview.cpp" line="136"/>
<source>s</source>
<translation>sek</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="137"/>
<location filename="../src/GUI/graphview.cpp" line="139"/>
<source>min</source>
<translation>min</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="140"/>
<location filename="../src/GUI/graphview.cpp" line="142"/>
<source>h</source>
<translation>tim</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="61"/>
<location filename="../src/GUI/graphview.cpp" line="172"/>
<location filename="../src/GUI/graphview.cpp" line="66"/>
<location filename="../src/GUI/graphview.cpp" line="181"/>
<source>Distance</source>
<translation>Avstånd</translation>
</message>
<message>
<location filename="../src/GUI/graphview.cpp" line="174"/>
<location filename="../src/GUI/graphview.cpp" line="183"/>
<source>Time</source>
<translation>Tid</translation>
</message>
@ -1003,13 +1067,13 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="225"/>
<location filename="../src/GUI/optionsdialog.cpp" line="418"/>
<location filename="../src/GUI/optionsdialog.cpp" line="434"/>
<source>Graphs</source>
<translation>Diagram</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="55"/>
<location filename="../src/GUI/optionsdialog.cpp" line="473"/>
<location filename="../src/GUI/optionsdialog.cpp" line="489"/>
<source>General</source>
<translation>Allmänt</translation>
</message>
@ -1144,7 +1208,7 @@
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="303"/>
<location filename="../src/GUI/optionsdialog.cpp" line="437"/>
<location filename="../src/GUI/optionsdialog.cpp" line="453"/>
<source>s</source>
<translation>sek</translation>
</message>
@ -1158,150 +1222,165 @@
<source>Minimal duration:</source>
<translation>Kortast varaktighet:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="314"/>
<source>Computed from distance/time</source>
<translation>Beräknad från distans/tid</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="315"/>
<source>Recorded by device</source>
<translation>Inspelad av enhet</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="330"/>
<source>Filtering</source>
<translation>Filtrering</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="316"/>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<source>Pause detection</source>
<translation>Pausa identifiering</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="328"/>
<location filename="../src/GUI/optionsdialog.cpp" line="332"/>
<source>Speed</source>
<translation>Hastighet</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<source>mi</source>
<translation>mi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="331"/>
<location filename="../src/GUI/optionsdialog.cpp" line="347"/>
<source>nmi</source>
<translation>nmi</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="334"/>
<location filename="../src/GUI/optionsdialog.cpp" line="350"/>
<source>km</source>
<translation>km</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="338"/>
<location filename="../src/GUI/optionsdialog.cpp" line="354"/>
<source>POI radius:</source>
<translation>POI-radie:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="344"/>
<location filename="../src/GUI/optionsdialog.cpp" line="477"/>
<location filename="../src/GUI/optionsdialog.cpp" line="360"/>
<location filename="../src/GUI/optionsdialog.cpp" line="493"/>
<source>POI</source>
<translation>POI</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="351"/>
<location filename="../src/GUI/optionsdialog.cpp" line="367"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="352"/>
<location filename="../src/GUI/optionsdialog.cpp" line="368"/>
<source>High-Resolution</source>
<translation>Högupplösning</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="357"/>
<location filename="../src/GUI/optionsdialog.cpp" line="373"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Det utskrivna området är ungefär detsamma som synligt område skärmen. Kartans zoomnivå ändras inte.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="359"/>
<location filename="../src/GUI/optionsdialog.cpp" line="375"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Zoomnivån kommer att ändras att hela innehållet (spår/vägpunkter) passar utskriftsområdet och kartresolutionen är nära som möjligt till utskriftsupplösningen.</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="381"/>
<location filename="../src/GUI/optionsdialog.cpp" line="397"/>
<source>Name</source>
<translation>Namn</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="383"/>
<location filename="../src/GUI/optionsdialog.cpp" line="399"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="385"/>
<location filename="../src/GUI/optionsdialog.cpp" line="401"/>
<source>Distance</source>
<translation>Avstånd</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="387"/>
<location filename="../src/GUI/optionsdialog.cpp" line="403"/>
<source>Time</source>
<translation>Tid</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="389"/>
<location filename="../src/GUI/optionsdialog.cpp" line="405"/>
<source>Moving time</source>
<translation>Förflyttningstid</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="391"/>
<location filename="../src/GUI/optionsdialog.cpp" line="407"/>
<source>Item count (&gt;1)</source>
<translation>Objektantal (&gt;1)</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="406"/>
<location filename="../src/GUI/optionsdialog.cpp" line="422"/>
<source>Separate graph page</source>
<translation>Separat diagramsida</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="416"/>
<location filename="../src/GUI/optionsdialog.cpp" line="432"/>
<source>Print mode</source>
<translation>Utskriftsläge</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="417"/>
<location filename="../src/GUI/optionsdialog.cpp" line="433"/>
<source>Header</source>
<translation>Rubrik</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="425"/>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<source>Use OpenGL</source>
<translation>Använd OpenGL</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="431"/>
<location filename="../src/GUI/optionsdialog.cpp" line="447"/>
<source>MB</source>
<translation>MB</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="441"/>
<location filename="../src/GUI/optionsdialog.cpp" line="457"/>
<source>Image cache size:</source>
<translation>Cashe-storlek för bilder:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="442"/>
<location filename="../src/GUI/optionsdialog.cpp" line="458"/>
<source>Connection timeout:</source>
<translation>Anslutningens tidsgräns:</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="455"/>
<location filename="../src/GUI/optionsdialog.cpp" line="480"/>
<location filename="../src/GUI/optionsdialog.cpp" line="471"/>
<location filename="../src/GUI/optionsdialog.cpp" line="496"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="474"/>
<location filename="../src/GUI/optionsdialog.cpp" line="490"/>
<source>Appearance</source>
<translation>Utseende</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="476"/>
<location filename="../src/GUI/optionsdialog.cpp" line="492"/>
<source>Data</source>
<translation>Data</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="478"/>
<location filename="../src/GUI/optionsdialog.cpp" line="494"/>
<source>Print &amp; Export</source>
<translation>Utskrift &amp; Export</translation>
</message>
<message>
<location filename="../src/GUI/optionsdialog.cpp" line="507"/>
<location filename="../src/GUI/optionsdialog.cpp" line="523"/>
<source>Options</source>
<translation>Alternativ</translation>
</message>

View File

@ -1572,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,,,
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,,,,,,
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 / 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,,,,,,

Can't render this file because it is too large.

View File

@ -5,7 +5,7 @@
; The name of the installer
Name "GPXSee"
; Program version
!define VERSION "5.13"
!define VERSION "5.16"
; The file to write
OutFile "GPXSee-${VERSION}.exe"
@ -167,6 +167,7 @@ Section "QT framework" SEC_QT
File /r "platforms"
File /r "imageformats"
File /r "printsupport"
File /r "styles"
SectionEnd

View File

@ -5,7 +5,7 @@
; The name of the installer
Name "GPXSee"
; Program version
!define VERSION "5.13"
!define VERSION "5.16"
; The file to write
OutFile "GPXSee-${VERSION}_x64.exe"
@ -174,6 +174,7 @@ Section "QT framework" SEC_QT
File /r "platforms"
File /r "imageformats"
File /r "printsupport"
File /r "styles"
SectionEnd

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<map xmlns="http://www.gpxsee.org/map/1">
<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>
<zoom min="2" max="15"/>
<bounds bottom="-65"/>

View File

@ -13,11 +13,6 @@ FileBrowser::FileBrowser(QObject *parent) : QObject(parent)
_index = -1;
}
FileBrowser::~FileBrowser()
{
delete _watcher;
}
void FileBrowser::setCurrent(const QString &path)
{
QFileInfo file(path);

View File

@ -13,7 +13,6 @@ class FileBrowser : public QObject
public:
FileBrowser(QObject *parent = 0);
~FileBrowser();
void setFilter(const QStringList &filter);
void setCurrent(const QString &path);

View File

@ -0,0 +1,94 @@
#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) {
GraphView::addInfo(tr("Most used"), QString::number(top() * yScale(),
'f', 2) + UNIT_SPACE + yUnits());
GraphView::addInfo(tr("Minimum"), QString::number(min() * yScale(), 'f',
2) + UNIT_SPACE + yUnits());
GraphView::addInfo(tr("Maximum"), QString::number(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
View 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

View File

@ -0,0 +1,39 @@
#include <QMap>
#include "tooltip.h"
#include "gearratiographitem.h"
GearRatioGraphItem::GearRatioGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent) : GraphItem(graph, type, parent), _top(NAN)
{
qreal val = NAN;
for (int j = 1; j < graph.size(); j++) {
const GraphPoint &p = graph.at(j);
qreal val = _map.value(p.y());
_map.insert(p.y(), val + (p.s() - graph.at(j-1).s()));
}
for (QMap<qreal, qreal>::const_iterator it = _map.constBegin();
it != _map.constEnd(); ++it) {
if (it == _map.constBegin()) {
val = it.value();
_top = it.key();
} else if (it.value() > val) {
val = it.value();
_top = it.key();
}
}
setToolTip(toolTip());
}
QString GearRatioGraphItem::toolTip() const
{
ToolTip tt;
tt.insert(tr("Minimum"), QString::number(min(), 'f', 2));
tt.insert(tr("Maximum"), QString::number(max(), 'f', 2));
tt.insert(tr("Most used"), QString::number(top(), 'f', 2));
return tt.toString();
}

View File

@ -0,0 +1,28 @@
#ifndef GEARRATIOGRAPHITEM_H
#define GEARRATIOGRAPHITEM_H
#include <QMap>
#include "graphitem.h"
class GearRatioGraphItem : public GraphItem
{
Q_OBJECT
public:
GearRatioGraphItem(const Graph &graph, GraphType type,
QGraphicsItem *parent = 0);
qreal min() const {return -bounds().bottom();}
qreal max() const {return -bounds().top();}
qreal top() const {return _top;}
const QMap<qreal, qreal> &map() const {return _map;}
private:
QString toolTip() const;
QMap<qreal, qreal> _map;
qreal _top;
};
#endif // GEARRATIOGRAPHITEM_H

View File

@ -3,6 +3,8 @@
#include <QMouseEvent>
#include <QPaintEngine>
#include <QPaintDevice>
#include <QGraphicsSimpleTextItem>
#include <QPalette>
#include "data/graph.h"
#include "opengl.h"
#include "config.h"
@ -41,6 +43,9 @@ GraphView::GraphView(QWidget *parent)
_sliderInfo->setZValue(3.0);
_info = new InfoItem();
_grid = new GridItem();
_message = new QGraphicsSimpleTextItem(tr("Data not available"));
_message->setBrush(QPalette().brush(QPalette::Disabled,
QPalette::WindowText));
connect(_slider, SIGNAL(positionChanged(const QPointF&)), this,
SLOT(emitSliderPositionChanged(const QPointF&)));
@ -63,30 +68,27 @@ GraphView::GraphView(QWidget *parent)
GraphView::~GraphView()
{
if (_xAxis->scene() != _scene)
delete _xAxis;
if (_yAxis->scene() != _scene)
delete _yAxis;
if (_slider->scene() != _scene)
delete _slider;
if (_info->scene() != _scene)
delete _info;
if (_grid->scene() != _scene)
delete _grid;
delete _message;
for (int i = 0; i < _graphs.count(); i++)
if (_graphs.at(i)->scene() != _scene)
delete _graphs[i];
}
void GraphView::createXLabel()
{
_xAxis->setLabel(QString("%1 [%2]").arg(_xLabel, _xUnits));
_xAxis->setLabel(QString("%1 [%2]").arg(_xLabel,
_xUnits.isEmpty() ? "-" : _xUnits));
}
void GraphView::createYLabel()
{
_yAxis->setLabel(QString("%1 [%2]").arg(_yLabel, _yUnits));
_yAxis->setLabel(QString("%1 [%2]").arg(_yLabel,
_yUnits.isEmpty() ? "-" : _yUnits));
}
void GraphView::setYLabel(const QString &label)
@ -163,9 +165,16 @@ void GraphView::setGraphType(GraphType type)
_bounds = QRectF();
for (int i = 0; i < _graphs.count(); i++) {
_graphs.at(i)->setGraphType(type);
if (_graphs.at(i)->scene() == _scene)
_bounds |= _graphs.at(i)->bounds();
GraphItem *gi = _graphs.at(i);
gi->setGraphType(type);
if (!_hide.contains(gi->id())) {
if (gi->bounds().width() > 0)
addItem(gi);
else
removeItem(gi);
}
if (gi->scene() == _scene)
_bounds |= gi->bounds();
}
if (type == Distance)
@ -204,8 +213,10 @@ void GraphView::addGraph(GraphItem *graph, int id)
if (!_hide.contains(id)) {
_visible.append(graph);
if (graph->bounds().width() > 0) {
_scene->addItem(graph);
_bounds |= graph->bounds();
}
setXUnits();
}
}
@ -232,15 +243,17 @@ void GraphView::showGraph(bool show, int id)
_visible.clear();
_bounds = QRectF();
for (int i = 0; i < _graphs.count(); i++) {
GraphItem* gi = _graphs.at(i);
GraphItem *gi = _graphs.at(i);
if (_hide.contains(gi->id()))
removeItem(gi);
else {
addItem(gi);
_visible.append(gi);
if (gi->bounds().width() > 0) {
addItem(gi);
_bounds |= gi->bounds();
}
}
}
}
QRectF GraphView::bounds() const
@ -252,6 +265,7 @@ QRectF GraphView::bounds() const
void GraphView::redraw()
{
if (!_graphs.isEmpty())
redraw(viewport()->size() - QSizeF(MARGIN, MARGIN));
}
@ -263,16 +277,18 @@ void GraphView::redraw(const QSizeF &size)
qreal sx, sy;
if (_visible.isEmpty() || _bounds.isNull()) {
if (_bounds.isNull()) {
removeItem(_xAxis);
removeItem(_yAxis);
removeItem(_slider);
removeItem(_info);
removeItem(_grid);
_scene->setSceneRect(QRectF());
addItem(_message);
_scene->setSceneRect(_scene->itemsBoundingRect());
return;
}
removeItem(_message);
addItem(_xAxis);
addItem(_yAxis);
addItem(_slider);
@ -330,9 +346,11 @@ void GraphView::redraw(const QSizeF &size)
_scene->setSceneRect(_scene->itemsBoundingRect());
}
void GraphView::resizeEvent(QResizeEvent *)
void GraphView::resizeEvent(QResizeEvent *e)
{
redraw();
redraw(e->size() - QSizeF(MARGIN, MARGIN));
QGraphicsView::resizeEvent(e);
}
void GraphView::mousePressEvent(QMouseEvent *e)

View File

@ -7,15 +7,16 @@
#include "data/graph.h"
#include "palette.h"
#include "units.h"
#include "infoitem.h"
class AxisItem;
class SliderItem;
class SliderInfoItem;
class InfoItem;
class GraphItem;
class PathItem;
class GridItem;
class QGraphicsSimpleTextItem;
class GraphView : public QGraphicsView
{
@ -26,6 +27,7 @@ public:
~GraphView();
bool isEmpty() const {return _graphs.isEmpty();}
const QList<KV> &info() const {return _info->info();}
void clear();
void plot(QPainter *painter, const QRectF &target, qreal scale);
@ -64,7 +66,6 @@ protected:
QRectF bounds() const;
void redraw();
void redraw(const QSizeF &size);
void addInfo(const QString &key, const QString &value);
void clearInfo();
void skipColor() {_palette.nextColor();}
@ -77,6 +78,7 @@ private slots:
void newSliderPosition(const QPointF &pos);
private:
void redraw(const QSizeF &size);
void setXUnits();
void createXLabel();
void createYLabel();
@ -85,8 +87,8 @@ private:
void removeItem(QGraphicsItem *item);
void addItem(QGraphicsItem *item);
void resizeEvent(QResizeEvent *);
void mousePressEvent(QMouseEvent *);
void resizeEvent(QResizeEvent *e);
void mousePressEvent(QMouseEvent *e);
Units _units;
qreal _xScale, _yScale;
@ -104,6 +106,7 @@ private:
SliderInfoItem *_sliderInfo;
InfoItem *_info;
GridItem *_grid;
QGraphicsSimpleTextItem *_message;
QList<GraphItem*> _visible;
QSet<int> _hide;

View File

@ -23,6 +23,7 @@
#include <QUrl>
#include <QPixmapCache>
#include "data/data.h"
#include "data/poi.h"
#include "map/maplist.h"
#include "map/emptymap.h"
#include "map/downloader.h"
@ -36,6 +37,7 @@
#include "temperaturegraph.h"
#include "cadencegraph.h"
#include "powergraph.h"
#include "gearratiograph.h"
#include "mapview.h"
#include "trackinfo.h"
#include "filebrowser.h"
@ -96,14 +98,6 @@ GUI::GUI()
updateStatusBarInfo();
}
GUI::~GUI()
{
for (int i = 0; i < _tabs.size(); i++) {
if (_graphTabWidget->indexOf(_tabs.at(i)) < 0)
delete _tabs.at(i);
}
}
void GUI::loadMaps()
{
_ml = new MapList(this);
@ -148,6 +142,7 @@ void GUI::createMapActions()
for (int i = 0; i < _ml->maps().count(); i++) {
QAction *a = new QAction(_ml->maps().at(i)->name(), this);
a->setMenuRole(QAction::NoRole);
a->setCheckable(true);
a->setActionGroup(_mapsActionGroup);
@ -176,6 +171,7 @@ QAction *GUI::createPOIFileAction(int index)
{
QAction *a = new QAction(QFileInfo(_poi->files().at(index)).fileName(),
this);
a->setMenuRole(QAction::NoRole);
a->setCheckable(true);
_poiFilesSignalMapper->setMapping(a, index);
@ -207,8 +203,10 @@ void GUI::createActions()
// Help & About
_pathsAction = new QAction(tr("Paths"), this);
_pathsAction->setMenuRole(QAction::NoRole);
connect(_pathsAction, SIGNAL(triggered()), this, SLOT(paths()));
_keysAction = new QAction(tr("Keyboard controls"), this);
_keysAction->setMenuRole(QAction::NoRole);
connect(_keysAction, SIGNAL(triggered()), this, SLOT(keys()));
_aboutAction = new QAction(QIcon(QPixmap(APP_ICON)),
tr("About GPXSee"), this);
@ -218,50 +216,66 @@ void GUI::createActions()
// File actions
_openFileAction = new QAction(QIcon(QPixmap(OPEN_FILE_ICON)),
tr("Open..."), this);
_openFileAction->setMenuRole(QAction::NoRole);
_openFileAction->setShortcut(OPEN_SHORTCUT);
connect(_openFileAction, SIGNAL(triggered()), this, SLOT(openFile()));
addAction(_openFileAction);
_printFileAction = new QAction(QIcon(QPixmap(PRINT_FILE_ICON)),
tr("Print..."), this);
_printFileAction->setMenuRole(QAction::NoRole);
_printFileAction->setActionGroup(_fileActionGroup);
connect(_printFileAction, SIGNAL(triggered()), this, SLOT(printFile()));
addAction(_printFileAction);
_exportFileAction = new QAction(QIcon(QPixmap(EXPORT_FILE_ICON)),
tr("Export to PDF..."), this);
_exportFileAction->setMenuRole(QAction::NoRole);
_exportFileAction->setShortcut(EXPORT_SHORTCUT);
_exportFileAction->setActionGroup(_fileActionGroup);
connect(_exportFileAction, SIGNAL(triggered()), this, SLOT(exportFile()));
addAction(_exportFileAction);
_closeFileAction = new QAction(QIcon(QPixmap(CLOSE_FILE_ICON)),
tr("Close"), this);
_closeFileAction->setMenuRole(QAction::NoRole);
_closeFileAction->setShortcut(CLOSE_SHORTCUT);
_closeFileAction->setActionGroup(_fileActionGroup);
connect(_closeFileAction, SIGNAL(triggered()), this, SLOT(closeAll()));
addAction(_closeFileAction);
_reloadFileAction = new QAction(QIcon(QPixmap(RELOAD_FILE_ICON)),
tr("Reload"), this);
_reloadFileAction->setMenuRole(QAction::NoRole);
_reloadFileAction->setShortcut(RELOAD_SHORTCUT);
_reloadFileAction->setActionGroup(_fileActionGroup);
connect(_reloadFileAction, SIGNAL(triggered()), this, SLOT(reloadFile()));
addAction(_reloadFileAction);
_statisticsAction = new QAction(tr("Statistics..."), this);
_statisticsAction->setMenuRole(QAction::NoRole);
_statisticsAction->setShortcut(STATISTICS_SHORTCUT);
_statisticsAction->setActionGroup(_fileActionGroup);
connect(_statisticsAction, SIGNAL(triggered()), this, SLOT(statistics()));
addAction(_statisticsAction);
// POI actions
_openPOIAction = new QAction(QIcon(QPixmap(OPEN_FILE_ICON)),
tr("Load POI file..."), this);
_openPOIAction->setMenuRole(QAction::NoRole);
connect(_openPOIAction, SIGNAL(triggered()), this, SLOT(openPOIFile()));
_closePOIAction = new QAction(QIcon(QPixmap(CLOSE_FILE_ICON)),
tr("Close POI files"), this);
_closePOIAction->setMenuRole(QAction::NoRole);
connect(_closePOIAction, SIGNAL(triggered()), this, SLOT(closePOIFiles()));
_overlapPOIAction = new QAction(tr("Overlap POIs"), this);
_overlapPOIAction->setMenuRole(QAction::NoRole);
_overlapPOIAction->setCheckable(true);
connect(_overlapPOIAction, SIGNAL(triggered(bool)), _mapView,
SLOT(setPOIOverlap(bool)));
_showPOILabelsAction = new QAction(tr("Show POI labels"), this);
_showPOILabelsAction->setMenuRole(QAction::NoRole);
_showPOILabelsAction->setCheckable(true);
connect(_showPOILabelsAction, SIGNAL(triggered(bool)), _mapView,
SLOT(showPOILabels(bool)));
_showPOIAction = new QAction(QIcon(QPixmap(SHOW_POI_ICON)),
tr("Show POIs"), this);
_showPOIAction->setMenuRole(QAction::NoRole);
_showPOIAction->setCheckable(true);
_showPOIAction->setShortcut(SHOW_POI_SHORTCUT);
connect(_showPOIAction, SIGNAL(triggered(bool)), _mapView,
@ -272,6 +286,7 @@ void GUI::createActions()
// Map actions
_showMapAction = new QAction(QIcon(QPixmap(SHOW_MAP_ICON)), tr("Show map"),
this);
_showMapAction->setMenuRole(QAction::NoRole);
_showMapAction->setCheckable(true);
_showMapAction->setShortcut(SHOW_MAP_SHORTCUT);
connect(_showMapAction, SIGNAL(triggered(bool)), _mapView,
@ -279,16 +294,20 @@ void GUI::createActions()
addAction(_showMapAction);
_loadMapAction = new QAction(QIcon(QPixmap(OPEN_FILE_ICON)),
tr("Load map..."), this);
_loadMapAction->setMenuRole(QAction::NoRole);
connect(_loadMapAction, SIGNAL(triggered()), this, SLOT(loadMap()));
_clearMapCacheAction = new QAction(tr("Clear tile cache"), this);
_clearMapCacheAction->setMenuRole(QAction::NoRole);
connect(_clearMapCacheAction, SIGNAL(triggered()), _mapView,
SLOT(clearMapCache()));
createMapActions();
_nextMapAction = new QAction(tr("Next map"), this);
_nextMapAction->setMenuRole(QAction::NoRole);
_nextMapAction->setShortcut(NEXT_MAP_SHORTCUT);
connect(_nextMapAction, SIGNAL(triggered()), this, SLOT(nextMap()));
addAction(_nextMapAction);
_prevMapAction = new QAction(tr("Next map"), this);
_prevMapAction->setMenuRole(QAction::NoRole);
_prevMapAction->setShortcut(PREV_MAP_SHORTCUT);
connect(_prevMapAction, SIGNAL(triggered()), this, SLOT(prevMap()));
addAction(_prevMapAction);
@ -299,22 +318,27 @@ void GUI::createActions()
// Data actions
_showTracksAction = new QAction(tr("Show tracks"), this);
_showTracksAction->setMenuRole(QAction::NoRole);
_showTracksAction->setCheckable(true);
connect(_showTracksAction, SIGNAL(triggered(bool)), this,
SLOT(showTracks(bool)));
_showRoutesAction = new QAction(tr("Show routes"), this);
_showRoutesAction->setMenuRole(QAction::NoRole);
_showRoutesAction->setCheckable(true);
connect(_showRoutesAction, SIGNAL(triggered(bool)), this,
SLOT(showRoutes(bool)));
_showWaypointsAction = new QAction(tr("Show waypoints"), this);
_showWaypointsAction->setMenuRole(QAction::NoRole);
_showWaypointsAction->setCheckable(true);
connect(_showWaypointsAction, SIGNAL(triggered(bool)), _mapView,
SLOT(showWaypoints(bool)));
_showWaypointLabelsAction = new QAction(tr("Waypoint labels"), this);
_showWaypointLabelsAction->setMenuRole(QAction::NoRole);
_showWaypointLabelsAction->setCheckable(true);
connect(_showWaypointLabelsAction, SIGNAL(triggered(bool)), _mapView,
SLOT(showWaypointLabels(bool)));
_showRouteWaypointsAction = new QAction(tr("Route waypoints"), this);
_showRouteWaypointsAction->setMenuRole(QAction::NoRole);
_showRouteWaypointsAction->setCheckable(true);
connect(_showRouteWaypointsAction, SIGNAL(triggered(bool)), _mapView,
SLOT(showRouteWaypoints(bool)));
@ -322,6 +346,7 @@ void GUI::createActions()
// Graph actions
_showGraphsAction = new QAction(QIcon(QPixmap(SHOW_GRAPHS_ICON)),
tr("Show graphs"), this);
_showGraphsAction->setMenuRole(QAction::NoRole);
_showGraphsAction->setCheckable(true);
_showGraphsAction->setShortcut(SHOW_GRAPHS_SHORTCUT);
connect(_showGraphsAction, SIGNAL(triggered(bool)), this,
@ -330,39 +355,46 @@ void GUI::createActions()
ag = new QActionGroup(this);
ag->setExclusive(true);
_distanceGraphAction = new QAction(tr("Distance"), this);
_distanceGraphAction->setMenuRole(QAction::NoRole);
_distanceGraphAction->setCheckable(true);
_distanceGraphAction->setActionGroup(ag);
connect(_distanceGraphAction, SIGNAL(triggered()), this,
SLOT(setDistanceGraph()));
addAction(_distanceGraphAction);
_timeGraphAction = new QAction(tr("Time"), this);
_timeGraphAction->setMenuRole(QAction::NoRole);
_timeGraphAction->setCheckable(true);
_timeGraphAction->setActionGroup(ag);
connect(_timeGraphAction, SIGNAL(triggered()), this,
SLOT(setTimeGraph()));
addAction(_timeGraphAction);
_showGraphGridAction = new QAction(tr("Show grid"), this);
_showGraphGridAction->setMenuRole(QAction::NoRole);
_showGraphGridAction->setCheckable(true);
connect(_showGraphGridAction, SIGNAL(triggered(bool)), this,
SLOT(showGraphGrids(bool)));
_showGraphSliderInfoAction = new QAction(tr("Show slider info"), this);
_showGraphSliderInfoAction->setMenuRole(QAction::NoRole);
_showGraphSliderInfoAction->setCheckable(true);
connect(_showGraphSliderInfoAction, SIGNAL(triggered(bool)), this,
SLOT(showGraphSliderInfo(bool)));
// Settings actions
_showToolbarsAction = new QAction(tr("Show toolbars"), this);
_showToolbarsAction->setMenuRole(QAction::NoRole);
_showToolbarsAction->setCheckable(true);
connect(_showToolbarsAction, SIGNAL(triggered(bool)), this,
SLOT(showToolbars(bool)));
ag = new QActionGroup(this);
ag->setExclusive(true);
_totalTimeAction = new QAction(tr("Total time"), this);
_totalTimeAction->setMenuRole(QAction::NoRole);
_totalTimeAction->setCheckable(true);
_totalTimeAction->setActionGroup(ag);
connect(_totalTimeAction, SIGNAL(triggered()), this,
SLOT(setTotalTime()));
_movingTimeAction = new QAction(tr("Moving time"), this);
_movingTimeAction->setMenuRole(QAction::NoRole);
_movingTimeAction->setCheckable(true);
_movingTimeAction->setActionGroup(ag);
connect(_movingTimeAction, SIGNAL(triggered()), this,
@ -370,16 +402,19 @@ void GUI::createActions()
ag = new QActionGroup(this);
ag->setExclusive(true);
_metricUnitsAction = new QAction(tr("Metric"), this);
_metricUnitsAction->setMenuRole(QAction::NoRole);
_metricUnitsAction->setCheckable(true);
_metricUnitsAction->setActionGroup(ag);
connect(_metricUnitsAction, SIGNAL(triggered()), this,
SLOT(setMetricUnits()));
_imperialUnitsAction = new QAction(tr("Imperial"), this);
_imperialUnitsAction->setMenuRole(QAction::NoRole);
_imperialUnitsAction->setCheckable(true);
_imperialUnitsAction->setActionGroup(ag);
connect(_imperialUnitsAction, SIGNAL(triggered()), this,
SLOT(setImperialUnits()));
_nauticalUnitsAction = new QAction(tr("Nautical"), this);
_nauticalUnitsAction->setMenuRole(QAction::NoRole);
_nauticalUnitsAction->setCheckable(true);
_nauticalUnitsAction->setActionGroup(ag);
connect(_nauticalUnitsAction, SIGNAL(triggered()), this,
@ -387,22 +422,26 @@ void GUI::createActions()
ag = new QActionGroup(this);
ag->setExclusive(true);
_decimalDegreesAction = new QAction(tr("Decimal degrees (DD)"), this);
_decimalDegreesAction->setMenuRole(QAction::NoRole);
_decimalDegreesAction->setCheckable(true);
_decimalDegreesAction->setActionGroup(ag);
connect(_decimalDegreesAction, SIGNAL(triggered()), this,
SLOT(setDecimalDegrees()));
_degreesMinutesAction = new QAction(tr("Degrees and decimal minutes (DMM)"),
this);
_degreesMinutesAction->setMenuRole(QAction::NoRole);
_degreesMinutesAction->setCheckable(true);
_degreesMinutesAction->setActionGroup(ag);
connect(_degreesMinutesAction, SIGNAL(triggered()), this,
SLOT(setDegreesMinutes()));
_DMSAction = new QAction(tr("Degrees, minutes, seconds (DMS)"), this);
_DMSAction->setMenuRole(QAction::NoRole);
_DMSAction->setCheckable(true);
_DMSAction->setActionGroup(ag);
connect(_DMSAction, SIGNAL(triggered()), this, SLOT(setDMS()));
_fullscreenAction = new QAction(QIcon(QPixmap(FULLSCREEN_ICON)),
tr("Fullscreen mode"), this);
_fullscreenAction->setMenuRole(QAction::NoRole);
_fullscreenAction->setCheckable(true);
_fullscreenAction->setShortcut(FULLSCREEN_SHORTCUT);
connect(_fullscreenAction, SIGNAL(triggered(bool)), this,
@ -416,16 +455,20 @@ void GUI::createActions()
// Navigation actions
_nextAction = new QAction(QIcon(QPixmap(NEXT_FILE_ICON)), tr("Next"), this);
_nextAction->setActionGroup(_navigationActionGroup);
_nextAction->setMenuRole(QAction::NoRole);
connect(_nextAction, SIGNAL(triggered()), this, SLOT(next()));
_prevAction = new QAction(QIcon(QPixmap(PREV_FILE_ICON)), tr("Previous"),
this);
_prevAction->setMenuRole(QAction::NoRole);
_prevAction->setActionGroup(_navigationActionGroup);
connect(_prevAction, SIGNAL(triggered()), this, SLOT(prev()));
_lastAction = new QAction(QIcon(QPixmap(LAST_FILE_ICON)), tr("Last"), this);
_lastAction->setMenuRole(QAction::NoRole);
_lastAction->setActionGroup(_navigationActionGroup);
connect(_lastAction, SIGNAL(triggered()), this, SLOT(last()));
_firstAction = new QAction(QIcon(QPixmap(FIRST_FILE_ICON)), tr("First"),
this);
_firstAction->setMenuRole(QAction::NoRole);
_firstAction->setActionGroup(_navigationActionGroup);
connect(_firstAction, SIGNAL(triggered()), this, SLOT(first()));
}
@ -438,8 +481,9 @@ void GUI::createMenus()
fileMenu->addAction(_printFileAction);
fileMenu->addAction(_exportFileAction);
fileMenu->addSeparator();
fileMenu->addAction(_reloadFileAction);
fileMenu->addAction(_statisticsAction);
fileMenu->addSeparator();
fileMenu->addAction(_reloadFileAction);
fileMenu->addAction(_closeFileAction);
#ifndef Q_OS_MAC
fileMenu->addSeparator();
@ -557,12 +601,13 @@ void GUI::createGraphTabs()
_graphTabWidget->setDocumentMode(true);
#endif // Q_OS_WIN32
_tabs.append(new ElevationGraph);
_tabs.append(new SpeedGraph);
_tabs.append(new HeartRateGraph);
_tabs.append(new CadenceGraph);
_tabs.append(new PowerGraph);
_tabs.append(new TemperatureGraph);
_tabs.append(new ElevationGraph(_graphTabWidget));
_tabs.append(new SpeedGraph(_graphTabWidget));
_tabs.append(new HeartRateGraph(_graphTabWidget));
_tabs.append(new CadenceGraph(_graphTabWidget));
_tabs.append(new PowerGraph(_graphTabWidget));
_tabs.append(new TemperatureGraph(_graphTabWidget));
_tabs.append(new GearRatioGraph(_graphTabWidget));
for (int i = 0; i < _tabs.count(); i++)
connect(_tabs.at(i), SIGNAL(sliderPositionChanged(qreal)), this,
@ -646,19 +691,19 @@ void GUI::paths()
msgBox.setWindowTitle(tr("Paths"));
msgBox.setText("<h3>" + tr("Paths") + "</h3>");
msgBox.setInformativeText(
"<style>td {white-space: pre; padding-right: 1em;}</style>"
"<div><table><tr><td>" + tr("Map directory:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_MAP_DIR) + "</code></td></tr><tr><td>"
+ tr("POI directory:") + "</td><td><code>"
"<style>td {white-space: pre; padding-right: 1em;}</style><h4>"
+ tr("Global") + "</h4><table><tr><td>" + tr("Map directory:")
+ "</td><td><code>" + QDir::cleanPath(GLOBAL_MAP_DIR)
+ "</code></td></tr><tr><td>" + tr("POI directory:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_POI_DIR) + "</code></td></tr><tr><td>"
+ tr("GCS file:") + "</td><td><code>" + QDir::cleanPath(GLOBAL_GCS_FILE)
+ "</code></td></tr><tr><td>" + tr("PCS file:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_PCS_FILE) + "</code></td></tr><tr><td>"
+ tr("Ellipsoids file:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_ELLIPSOID_FILE) + "</code></td></tr>"
+ "<tr><td></td><td></td></tr></table></div><div><table><tr><td>"
+ tr("User override directory:") + "</td><td><code>"
+ QDir::cleanPath(USER_DIR) + "</td></tr></table></div>"
+ tr("GCS/PCS directory:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_CSV_DIR) + "</code></td></tr></table>"
+ "<h4>" + tr("User-specific") + "</h4><table><tr><td>"
+ tr("Map directory:") + "</td><td><code>" + QDir::cleanPath(USER_MAP_DIR)
+ "</code></td></tr><tr><td>" + tr("POI directory:") + "</td><td><code>"
+ QDir::cleanPath(USER_POI_DIR) + "</code></td></tr><tr><td>"
+ tr("GCS/PCS directory:") + "</td><td><code>"
+ QDir::cleanPath(USER_CSV_DIR) + "</code></td></tr></table>"
);
msgBox.exec();
@ -867,6 +912,7 @@ void GUI::openOptions()
SET_TRACK_OPTION(outlierEliminate, setOutlierElimination);
SET_TRACK_OPTION(pauseSpeed, setPauseSpeed);
SET_TRACK_OPTION(pauseInterval, setPauseInterval);
SET_TRACK_OPTION(useReportedSpeed, useReportedSpeed);
if (options.poiRadius != _options.poiRadius)
_poi->setRadius(options.poiRadius);
@ -874,6 +920,10 @@ void GUI::openOptions()
QPixmapCache::setCacheLimit(options.pixmapCache * 1024);
if (options.connectionTimeout != _options.connectionTimeout)
Downloader::setTimeout(options.connectionTimeout);
#ifdef ENABLE_HTTP2
if (options.enableHTTP2 != _options.enableHTTP2)
Downloader::enableHTTP2(options.enableHTTP2);
#endif // ENABLE_HTTP2
if (reload)
reloadFile();
@ -912,14 +962,78 @@ void GUI::exportFile()
plot(&printer);
}
void GUI::statistics()
{
#ifdef Q_OS_WIN32
QString text = "<style>td {white-space: pre; padding-right: 4em;}"
"th {text-align: left; padding-top: 0.5em;}</style><table>";
#else // Q_OS_WIN32
QString text = "<style>td {white-space: pre; padding-right: 2em;}"
"th {text-align: left; padding-top: 0.5em;}</style><table>";
#endif // Q_OS_WIN32
if (_showTracksAction->isChecked() && _trackCount > 1)
text.append("<tr><td>" + tr("Tracks") + ":</td><td>"
+ QString::number(_trackCount) + "</td></tr>");
if (_showRoutesAction->isChecked() && _routeCount > 1)
text.append("<tr><td>" + tr("Routes") + ":</td><td>"
+ QString::number(_routeCount) + "</td></tr>");
if (_showWaypointsAction->isChecked() && _waypointCount > 1)
text.append("<tr><td>" + tr("Waypoints") + ":</td><td>"
+ QString::number(_waypointCount) + "</td></tr>");
if (_dateRange.first.isValid()) {
if (_dateRange.first == _dateRange.second) {
QString format = QLocale::system().dateFormat(QLocale::LongFormat);
text.append("<tr><td>" + tr("Date") + ":</td><td>"
+ _dateRange.first.toString(format) + "</td></tr>");
} else {
QString format = QLocale::system().dateFormat(QLocale::ShortFormat);
text.append("<tr><td>" + tr("Date") + ":</td><td>"
+ QString("%1 - %2").arg(_dateRange.first.toString(format),
_dateRange.second.toString(format)) + "</td></tr>");
}
}
if (distance() > 0)
text.append("<tr><td>" + tr("Distance") + ":</td><td>"
+ Format::distance(distance(), units()) + "</td></tr>");
if (time() > 0) {
text.append("<tr><td>" + tr("Time") + ":</td><td>"
+ Format::timeSpan(time()) + "</td></tr>");
text.append("<tr><td>" + tr("Moving time") + ":</td><td>"
+ Format::timeSpan(movingTime()) + "</td></tr>");
}
for (int i = 0; i < _tabs.count(); i++) {
const GraphTab *tab = _tabs.at(i);
if (tab->isEmpty())
continue;
text.append("<tr><th colspan=\"2\">" + tab->label() + "</th></tr>");
for (int j = 0; j < tab->info().size(); j++) {
const KV &kv = tab->info().at(j);
text.append("<tr><td>" + kv.key() + ":</td><td>" + kv.value()
+ "</td></tr>");
}
}
text.append("</table>");
QMessageBox msgBox(this);
msgBox.setWindowTitle(tr("Statistics"));
msgBox.setText("<h3>" + tr("Statistics") + "</h3>");
msgBox.setInformativeText(text);
msgBox.exec();
}
void GUI::plot(QPrinter *printer)
{
QPainter p(printer);
TrackInfo info;
qreal ih, gh, mh, ratio;
qreal d = distance();
qreal t = time();
qreal tm = movingTime();
if (!_pathName.isNull() && _options.printName)
info.insert(tr("Name"), _pathName);
@ -929,7 +1043,7 @@ void GUI::plot(QPrinter *printer)
info.insert(tr("Tracks"), QString::number(_trackCount));
if (_showRoutesAction->isChecked() && _routeCount > 1)
info.insert(tr("Routes"), QString::number(_routeCount));
if (_showWaypointsAction->isChecked() && _waypointCount > 2)
if (_showWaypointsAction->isChecked() && _waypointCount > 1)
info.insert(tr("Waypoints"), QString::number(_waypointCount));
}
@ -945,12 +1059,12 @@ void GUI::plot(QPrinter *printer)
}
}
if (d > 0 && _options.printDistance)
info.insert(tr("Distance"), Format::distance(d, units()));
if (t > 0 && _options.printTime)
info.insert(tr("Time"), Format::timeSpan(t));
if (tm > 0 && _options.printMovingTime)
info.insert(tr("Moving time"), Format::timeSpan(tm));
if (distance() > 0 && _options.printDistance)
info.insert(tr("Distance"), Format::distance(distance(), units()));
if (time() > 0 && _options.printTime)
info.insert(tr("Time"), Format::timeSpan(time()));
if (movingTime() > 0 && _options.printMovingTime)
info.insert(tr("Moving time"), Format::timeSpan(movingTime()));
qreal fsr = 1085.0 / (qMax(printer->width(), printer->height())
/ (qreal)printer->resolution());
@ -1166,6 +1280,7 @@ bool GUI::loadMap(const QString &fileName)
if (_ml->loadFile(fileName)) {
QAction *a = new QAction(_ml->maps().last()->name(), this);
a->setMenuRole(QAction::NoRole);
a->setCheckable(true);
a->setActionGroup(_mapsActionGroup);
_mapsSignalMapper->setMapping(a, _ml->maps().size() - 1);
@ -1638,10 +1753,16 @@ void GUI::writeSettings()
settings.setValue(PAUSE_SPEED_SETTING, _options.pauseSpeed);
if (_options.pauseInterval != PAUSE_INTERVAL_DEFAULT)
settings.setValue(PAUSE_INTERVAL_SETTING, _options.pauseInterval);
if (_options.useReportedSpeed != USE_REPORTED_SPEED_DEFAULT)
settings.setValue(USE_REPORTED_SPEED_SETTING, _options.useReportedSpeed);
if (_options.poiRadius != POI_RADIUS_DEFAULT)
settings.setValue(POI_RADIUS_SETTING, _options.poiRadius);
if (_options.useOpenGL != USE_OPENGL_DEFAULT)
settings.setValue(USE_OPENGL_SETTING, _options.useOpenGL);
#ifdef ENABLE_HTTP2
if (_options.enableHTTP2 != ENABLE_HTTP2_DEFAULT)
settings.setValue(ENABLE_HTTP2_SETTING, _options.enableHTTP2);
#endif // ENABLE_HTTP2
if (_options.pixmapCache != PIXMAP_CACHE_DEFAULT)
settings.setValue(PIXMAP_CACHE_SETTING, _options.pixmapCache);
if (_options.connectionTimeout != CONNECTION_TIMEOUT_DEFAULT)
@ -1866,12 +1987,18 @@ void GUI::readSettings()
OUTLIER_ELIMINATE_DEFAULT).toBool();
_options.pauseSpeed = settings.value(PAUSE_SPEED_SETTING,
PAUSE_SPEED_DEFAULT).toFloat();
_options.useReportedSpeed = settings.value(USE_REPORTED_SPEED_SETTING,
USE_REPORTED_SPEED_DEFAULT).toBool();
_options.pauseInterval = settings.value(PAUSE_INTERVAL_SETTING,
PAUSE_INTERVAL_DEFAULT).toInt();
_options.poiRadius = settings.value(POI_RADIUS_SETTING, POI_RADIUS_DEFAULT)
.toInt();
_options.useOpenGL = settings.value(USE_OPENGL_SETTING, USE_OPENGL_DEFAULT)
.toBool();
#ifdef ENABLE_HTTP2
_options.enableHTTP2 = settings.value(ENABLE_HTTP2_SETTING,
ENABLE_HTTP2_DEFAULT).toBool();
#endif // ENABLE_HTTP2
_options.pixmapCache = settings.value(PIXMAP_CACHE_SETTING,
PIXMAP_CACHE_DEFAULT).toInt();
_options.connectionTimeout = settings.value(CONNECTION_TIMEOUT_SETTING,
@ -1931,11 +2058,15 @@ void GUI::readSettings()
Track::setOutlierElimination(_options.outlierEliminate);
Track::setPauseSpeed(_options.pauseSpeed);
Track::setPauseInterval(_options.pauseInterval);
Track::useReportedSpeed(_options.useReportedSpeed);
_poi->setRadius(_options.poiRadius);
QPixmapCache::setCacheLimit(_options.pixmapCache * 1024);
Downloader::setTimeout(_options.connectionTimeout);
#ifdef ENABLE_HTTP2
Downloader::enableHTTP2(_options.enableHTTP2);
#endif // ENABLE_HTTP2
settings.endGroup();
}

View File

@ -7,7 +7,6 @@
#include <QDate>
#include <QPrinter>
#include "data/graph.h"
#include "data/poi.h"
#include "units.h"
#include "timetype.h"
#include "format.h"
@ -28,6 +27,7 @@ class GraphTab;
class MapView;
class Map;
class MapList;
class POI;
class GUI : public QMainWindow
{
@ -35,7 +35,6 @@ class GUI : public QMainWindow
public:
GUI();
~GUI();
bool openFile(const QString &fileName);
@ -48,6 +47,7 @@ private slots:
void openFile();
void closeAll();
void reloadFile();
void statistics();
void openPOIFile();
void closePOIFiles();
void showGraphs(bool show);
@ -151,6 +151,7 @@ private:
QAction *_openFileAction;
QAction *_closeFileAction;
QAction *_reloadFileAction;
QAction *_statisticsAction;
QAction *_openPOIAction;
QAction *_closePOIAction;
QAction *_showPOIAction;

View File

@ -22,8 +22,8 @@ void InfoItem::updateBoundingRect()
for (QList<KV>::const_iterator i = _list.constBegin();
i != _list.constEnd(); i++) {
width += fm.width(i->key + ": ");
width += fm.width(i->value) + ((i == _list.constEnd() - 1)
width += fm.width(i->key() + ": ");
width += fm.width(i->value()) + ((i == _list.constEnd() - 1)
? 0 : PADDING);
}
@ -43,10 +43,10 @@ void InfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
for (QList<KV>::const_iterator i = _list.constBegin();
i != _list.constEnd(); i++) {
painter->drawText(width, fm.height() - fm.descent(), i->key + ": ");
width += fm.width(i->key + ": ");
painter->drawText(width, fm.height() - fm.descent(), i->value);
width += fm.width(i->value) + ((i == _list.constEnd() - 1)
painter->drawText(width, fm.height() - fm.descent(), i->key() + ": ");
width += fm.width(i->key() + ": ");
painter->drawText(width, fm.height() - fm.descent(), i->value());
width += fm.width(i->value()) + ((i == _list.constEnd() - 1)
? 0 : PADDING);
if (i != _list.constEnd() - 1) {
painter->save();

View File

@ -3,6 +3,7 @@
#include <QGraphicsItem>
#include <QList>
#include "kv.h"
class InfoItem : public QGraphicsItem
{
@ -13,6 +14,8 @@ public:
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
const QList<KV> &info() const {return _list;}
void insert(const QString &key, const QString &value);
void clear();
bool isEmpty() {return _list.isEmpty();}
@ -20,17 +23,6 @@ public:
private:
void updateBoundingRect();
class KV {
public:
QString key;
QString value;
KV(const QString &k, const QString &v)
{key = k; value = v;}
bool operator==(const KV &other) const
{return this->key == other.key;}
};
QList<KV> _list;
QRectF _boundingRect;
QFont _font;

View File

@ -24,6 +24,7 @@
#define NEXT_MAP_SHORTCUT QKeySequence(QKeySequence::Forward)
#define PREV_MAP_SHORTCUT QKeySequence(QKeySequence::Back)
#define SHOW_GRAPHS_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_G)
#define STATISTICS_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_S)
#ifdef Q_OS_MAC
#define FULLSCREEN_SHORTCUT QKeySequence(Qt::META + Qt::CTRL + Qt::Key_F)

21
src/GUI/kv.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef KV_H
#define KV_H
#include <QString>
class KV {
public:
KV(const QString &key, const QString &value) : _key(key), _value(value) {}
const QString &key() const {return _key;}
const QString &value() const {return _value;}
bool operator==(const KV &other) const
{return this->key() == other.key();}
private:
QString _key;
QString _value;
};
#endif // KV_H

View File

@ -1,5 +1,5 @@
#include <QtGlobal>
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) || defined(Q_OS_MAC)
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0)
#include <QGLWidget>
#include <QGLFormat>
#else
@ -7,13 +7,13 @@
#include <QSurfaceFormat>
#endif
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) || defined(Q_OS_MAC)
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0)
#define OPENGL_WIDGET QGLWidget
#else
#define OPENGL_WIDGET QOpenGLWidget
#endif
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0) || defined(Q_OS_MAC)
#if QT_VERSION < QT_VERSION_CHECK(5, 4, 0)
#define OPENGL_SET_SAMPLES(samples) \
{QGLFormat fmt; \
fmt.setSamples(samples); \

View File

@ -12,7 +12,6 @@
#include <QRadioButton>
#include <QLabel>
#include <QSysInfo>
#include "config.h"
#include "icons.h"
#include "colorbox.h"
#include "stylecombobox.h"
@ -311,9 +310,25 @@ QWidget *OptionsDialog::createDataPage()
pauseTab->setLayout(pauseLayout);
_computed = new QRadioButton(tr("Computed from distance/time"));
_reported = new QRadioButton(tr("Recorded by device"));
if (_options->useReportedSpeed)
_reported->setChecked(true);
else
_computed->setChecked(true);
QFormLayout *sourceLayout = new QFormLayout();
sourceLayout->addWidget(_computed);
sourceLayout->addWidget(_reported);
QWidget *sourceTab = new QWidget();
sourceTab->setLayout(sourceLayout);
QTabWidget *filterPage = new QTabWidget();
filterPage->addTab(filterTab, tr("Filtering"));
filterPage->addTab(pauseTab, tr("Pause detection"));
filterPage->addTab(sourceTab, tr("Speed"));
return filterPage;
}
@ -424,6 +439,10 @@ QWidget *OptionsDialog::createSystemPage()
{
_useOpenGL = new QCheckBox(tr("Use OpenGL"));
_useOpenGL->setChecked(_options->useOpenGL);
#ifdef ENABLE_HTTP2
_enableHTTP2 = new QCheckBox(tr("Enable HTTP/2"));
_enableHTTP2->setChecked(_options->enableHTTP2);
#endif // ENABLE_HTTP2
_pixmapCache = new QSpinBox();
_pixmapCache->setMinimum(16);
@ -442,6 +461,9 @@ QWidget *OptionsDialog::createSystemPage()
formLayout->addRow(tr("Connection timeout:"), _connectionTimeout);
QFormLayout *checkboxLayout = new QFormLayout();
#ifdef ENABLE_HTTP2
checkboxLayout->addWidget(_enableHTTP2);
#endif // ENABLE_HTTP2
checkboxLayout->addWidget(_useOpenGL);
QWidget *systemTab = new QWidget();
@ -543,6 +565,7 @@ void OptionsDialog::accept()
if (qAbs(pauseSpeed - _options->pauseSpeed) > 0.01)
_options->pauseSpeed = pauseSpeed;
_options->pauseInterval = _pauseInterval->value();
_options->useReportedSpeed = _reported->isChecked();
qreal poiRadius = (_options->units == Imperial)
? _poiRadius->value() * MIINM : (_options->units == Nautical)
@ -551,6 +574,9 @@ void OptionsDialog::accept()
_options->poiRadius = poiRadius;
_options->useOpenGL = _useOpenGL->isChecked();
#ifdef ENABLE_HTTP2
_options->enableHTTP2 = _enableHTTP2->isChecked();
#endif // ENABLE_HTTP2
_options->pixmapCache = _pixmapCache->value();
_options->connectionTimeout = _connectionTimeout->value();

View File

@ -4,6 +4,8 @@
#include <QDialog>
#include "palette.h"
#include "units.h"
#include "config.h"
class ColorBox;
class StyleComboBox;
@ -43,10 +45,14 @@ struct Options {
bool outlierEliminate;
qreal pauseSpeed;
int pauseInterval;
bool useReportedSpeed;
// POI
int poiRadius;
// System
bool useOpenGL;
#ifdef ENABLE_HTTP2
bool enableHTTP2;
#endif // ENABLE_HTTP2
int pixmapCache;
int connectionTimeout;
// Print/Export
@ -110,12 +116,17 @@ private:
QCheckBox *_outlierEliminate;
QDoubleSpinBox *_pauseSpeed;
QSpinBox *_pauseInterval;
QRadioButton *_computed;
QRadioButton *_reported;
// POI
QDoubleSpinBox *_poiRadius;
// System
QSpinBox *_pixmapCache;
QSpinBox *_connectionTimeout;
QCheckBox *_useOpenGL;
#ifdef ENABLE_HTTP2
QCheckBox *_enableHTTP2;
#endif // ENABLE_HTTP2
// Print/Export
QRadioButton *_wysiwyg;
QRadioButton *_hires;

View File

@ -175,10 +175,10 @@ void PathItem::setMarkerColor(const QColor &color)
void PathItem::hover(bool hover)
{
if (hover) {
_pen.setWidth(_width + 1);
_pen.setWidth((_width + 1) * pow(2, -_digitalZoom));
setZValue(zValue() + 1.0);
} else {
_pen.setWidth(_width);
_pen.setWidth(_width * pow(2, -_digitalZoom));
setZValue(zValue() - 1.0);
}

View File

@ -124,10 +124,14 @@
#define PAUSE_SPEED_DEFAULT 0.5 /* m/s */
#define PAUSE_INTERVAL_SETTING "pauseInterval"
#define PAUSE_INTERVAL_DEFAULT 10 /* s */
#define USE_REPORTED_SPEED_SETTING "useReportedSpeed"
#define USE_REPORTED_SPEED_DEFAULT false
#define POI_RADIUS_SETTING "poiRadius"
#define POI_RADIUS_DEFAULT (int)(IMPERIAL_UNITS() ? MIINM : KMINM)
#define USE_OPENGL_SETTING "useOpenGL"
#define USE_OPENGL_DEFAULT false
#define ENABLE_HTTP2_SETTING "enableHTTP2"
#define ENABLE_HTTP2_DEFAULT true
#define PIXMAP_CACHE_SETTING "pixmapCache"
#define PIXMAP_CACHE_DEFAULT 64 /* MB */
#define CONNECTION_TIMEOUT_SETTING "connectionTimeout"

View File

@ -12,11 +12,12 @@
#define FONT_FAMILY "Arial"
#define FONT_SIZE 12 // px
#define ELLIPSOID_FILE QString("csv/ellipsoids.csv")
#define GCS_FILE QString("csv/gcs.csv")
#define PCS_FILE QString("csv/pcs.csv")
#define MAP_DIR QString("maps")
#define POI_DIR QString("POI")
#define CSV_DIR QString("csv")
#define ELLIPSOID_FILE QString("ellipsoids.csv")
#define GCS_FILE QString("gcs.csv")
#define PCS_FILE QString("pcs.csv")
#if defined(Q_OS_WIN32)
#define USER_DIR QDir::homePath() + QString("/GPXSee")
@ -30,17 +31,23 @@
#define GLOBAL_DIR QString("/usr/share/gpxsee")
#endif
#define USER_ELLIPSOID_FILE USER_DIR + QString("/") + ELLIPSOID_FILE
#define USER_GCS_FILE USER_DIR + QString("/") + GCS_FILE
#define USER_PCS_FILE USER_DIR + QString("/") + PCS_FILE
#define USER_CSV_DIR USER_DIR + QString("/") + CSV_DIR
#define USER_ELLIPSOID_FILE USER_CSV_DIR + QString("/") + ELLIPSOID_FILE
#define USER_GCS_FILE USER_CSV_DIR + QString("/") + GCS_FILE
#define USER_PCS_FILE USER_CSV_DIR + QString("/") + PCS_FILE
#define USER_MAP_DIR USER_DIR + QString("/") + MAP_DIR
#define USER_POI_DIR USER_DIR + QString("/") + POI_DIR
#define GLOBAL_ELLIPSOID_FILE GLOBAL_DIR + QString("/") + ELLIPSOID_FILE
#define GLOBAL_GCS_FILE GLOBAL_DIR + QString("/") + GCS_FILE
#define GLOBAL_PCS_FILE GLOBAL_DIR + QString("/") + PCS_FILE
#define GLOBAL_CSV_DIR GLOBAL_DIR + QString("/") + CSV_DIR
#define GLOBAL_ELLIPSOID_FILE GLOBAL_CSV_DIR + QString("/") + ELLIPSOID_FILE
#define GLOBAL_GCS_FILE GLOBAL_CSV_DIR + QString("/") + GCS_FILE
#define GLOBAL_PCS_FILE GLOBAL_CSV_DIR + QString("/") + PCS_FILE
#define GLOBAL_MAP_DIR GLOBAL_DIR + QString("/") + MAP_DIR
#define GLOBAL_POI_DIR GLOBAL_DIR + QString("/") + POI_DIR
#define TILES_DIR USER_DIR + QString("/tiles")
#define TRANSLATIONS_DIR GLOBAL_DIR + QString("/translations")
#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 1))
#define ENABLE_HTTP2
#endif // QT >= 5.10.1
#endif /* CONFIG_H */

View File

@ -1,48 +1,72 @@
#include <cstring>
#include <QtEndian>
#include "common/staticassert.h"
#include "fitparser.h"
const quint32 FIT_MAGIC = 0x5449462E; // .FIT
#define FIT_MAGIC 0x5449462E // .FIT
#define RECORD_MESSAGE 20
#define EVENT_MESSAGE 21
#define TIMESTAMP_FIELD 253
class Event {
public:
Event() : id(0), type(0), data(0) {}
FITParser::FITParser()
{
memset(_defs, 0, sizeof(_defs));
quint8 id;
quint8 type;
quint32 data;
};
_device = 0;
_endian = 0;
_timestamp = 0;
_len = 0;
}
struct FileHeader {
quint8 headerSize;
quint8 protocolVersion;
quint16 profileVersion;
quint32 dataSize;
quint32 magic;
};
void FITParser::clearDefinitions()
{
for (int i = 0; i < 16; i++) {
if (_defs[i].fields)
delete[] _defs[i].fields;
if (_defs[i].devFields)
delete[] _defs[i].devFields;
}
struct FITParser::Field {
quint8 id;
quint8 size;
quint8 type;
};
memset(_defs, 0, sizeof(_defs));
}
class FITParser::MessageDefinition {
public:
MessageDefinition() : endian(0), globalId(0), numFields(0), fields(0),
numDevFields(0), devFields(0) {}
~MessageDefinition() {delete[] fields; delete[] devFields;}
void FITParser::warning(const char *text) const
{
const QFile *file = static_cast<QFile *>(_device);
qWarning("%s:%d: %s\n", qPrintable(file->fileName()), _len, text);
}
quint8 endian;
quint16 globalId;
quint8 numFields;
Field *fields;
quint8 numDevFields;
Field *devFields;
};
bool FITParser::readData(char *data, size_t size)
class FITParser::CTX {
public:
CTX(QFile *file) : file(file), len(0), endian(0), timestamp(0),
lastWrite(0), ratio(NAN) {}
QFile *file;
quint32 len;
quint8 endian;
quint32 timestamp, lastWrite;
MessageDefinition defs[16];
qreal ratio;
Trackpoint trackpoint;
TrackData track;
};
bool FITParser::readData(QFile *file, char *data, size_t size)
{
qint64 n;
n = _device->read(data, size);
n = file->read(data, size);
if (n < 0) {
_errorString = "I/O error";
return false;
@ -54,17 +78,17 @@ bool FITParser::readData(char *data, size_t size)
return true;
}
template<class T> bool FITParser::readValue(T &val)
template<class T> bool FITParser::readValue(CTX &ctx, T &val)
{
T data;
if (!readData((char*)&data, sizeof(T)))
if (!readData(ctx.file, (char*)&data, sizeof(T)))
return false;
_len -= sizeof(T);
ctx.len -= sizeof(T);
if (sizeof(T) > 1) {
if (_endian)
if (ctx.endian)
val = qFromBigEndian(data);
else
val = qFromLittleEndian(data);
@ -74,22 +98,16 @@ template<class T> bool FITParser::readValue(T &val)
return true;
}
bool FITParser::skipValue(size_t size)
bool FITParser::skipValue(CTX &ctx, size_t size)
{
size_t i;
quint8 val;
for (i = 0; i < size; i++)
if (!readValue(val))
return false;
return true;
ctx.len -= size;
return ctx.file->seek(ctx.file->pos() + size);
}
bool FITParser::parseDefinitionMessage(quint8 header)
bool FITParser::parseDefinitionMessage(CTX &ctx, quint8 header)
{
int local_id = header & 0x0f;
MessageDefinition* def = &_defs[local_id];
MessageDefinition *def = &(ctx.defs[local_id]);
quint8 i;
@ -103,54 +121,56 @@ bool FITParser::parseDefinitionMessage(quint8 header)
}
// reserved/unused
if (!readValue(i))
if (!readValue(ctx, i))
return false;
// endianness
if (!readValue(def->endian))
if (!readValue(ctx, def->endian))
return false;
if (def->endian > 1) {
_errorString = "Bad endian field";
return false;
}
_endian = def->endian;
ctx.endian = def->endian;
// global message number
if (!readValue(def->globalId))
if (!readValue(ctx, def->globalId))
return false;
// number of records
if (!readValue(def->numFields))
if (!readValue(ctx, def->numFields))
return false;
// definition records
def->fields = new Field[def->numFields];
for (i = 0; i < def->numFields; i++) {
STATIC_ASSERT(sizeof(def->fields[i]) == 3);
if (!readData((char*)&(def->fields[i]), sizeof(def->fields[i])))
if (!readData(ctx.file, (char*)&(def->fields[i]),
sizeof(def->fields[i])))
return false;
_len -= sizeof(def->fields[i]);
ctx.len -= sizeof(def->fields[i]);
}
// developer definition records
if (header & 0x20) {
if (!readValue(def->numDevFields))
if (!readValue(ctx, def->numDevFields))
return false;
def->devFields = new Field[def->numDevFields];
for (i = 0; i < def->numDevFields; i++) {
STATIC_ASSERT(sizeof(def->devFields[i]) == 3);
if (!readData((char*)&(def->devFields[i]),
if (!readData(ctx.file, (char*)&(def->devFields[i]),
sizeof(def->devFields[i])))
return false;
_len -= sizeof(def->devFields[i]);
}
ctx.len -= sizeof(def->devFields[i]);
}
} else
def->numDevFields = 0;
return true;
}
bool FITParser::readField(Field *f, quint32 &val)
bool FITParser::readField(CTX &ctx, Field *field, quint32 &val)
{
quint8 v8 = (quint8)-1;
quint16 v16 = (quint16)-1;
@ -158,46 +178,44 @@ bool FITParser::readField(Field *f, quint32 &val)
val = (quint32)-1;
switch (f->type) {
switch (field->type) {
case 0: // enum
case 1: // sint8
case 2: // uint8
if (f->size == 1) {
ret = readValue(v8);
if (field->size == 1) {
ret = readValue(ctx, v8);
val = v8;
} else
ret = skipValue(f->size);
ret = skipValue(ctx, field->size);
break;
case 0x83: // sint16
case 0x84: // uint16
if (f->size == 2) {
ret = readValue(v16);
if (field->size == 2) {
ret = readValue(ctx, v16);
val = v16;
} else
ret = skipValue(f->size);
ret = skipValue(ctx, field->size);
break;
case 0x85: // sint32
case 0x86: // uint32
if (f->size == 4)
ret = readValue(val);
if (field->size == 4)
ret = readValue(ctx, val);
else
ret = skipValue(f->size);
ret = skipValue(ctx, field->size);
break;
default:
ret = skipValue(f->size);
ret = skipValue(ctx, field->size);
break;
}
return ret;
}
bool FITParser::parseData(TrackData &track, MessageDefinition *def,
quint8 offset)
bool FITParser::parseData(CTX &ctx, const MessageDefinition *def)
{
Field *field;
quint32 timestamp = _timestamp + offset;
Event event;
quint32 val;
Trackpoint trackpoint;
int i;
if (!def->fields && !def->devFields) {
@ -205,133 +223,149 @@ bool FITParser::parseData(TrackData &track, MessageDefinition *def,
return false;
}
_endian = def->endian;
ctx.endian = def->endian;
for (i = 0; i < def->numFields; i++) {
for (int i = 0; i < def->numFields; i++) {
field = &def->fields[i];
if (!readField(field, val))
if (!readField(ctx, field, val))
return false;
if (field->id == TIMESTAMP_FIELD)
_timestamp = timestamp = val;
ctx.timestamp = val;
else if (def->globalId == RECORD_MESSAGE) {
switch (field->id) {
case 0:
if (val != 0x7fffffff)
trackpoint.rcoordinates().setLat(
ctx.trackpoint.rcoordinates().setLat(
((qint32)val / (double)0x7fffffff) * 180);
break;
case 1:
if (val != 0x7fffffff)
trackpoint.rcoordinates().setLon(
ctx.trackpoint.rcoordinates().setLon(
((qint32)val / (double)0x7fffffff) * 180);
break;
case 2:
if (val != 0xffff)
trackpoint.setElevation((val / 5.0) - 500);
ctx.trackpoint.setElevation((val / 5.0) - 500);
break;
case 3:
if (val != 0xff)
trackpoint.setHeartRate(val);
ctx.trackpoint.setHeartRate(val);
break;
case 4:
if (val != 0xff)
trackpoint.setCadence(val);
ctx.trackpoint.setCadence(val);
break;
case 6:
if (val != 0xffff)
trackpoint.setSpeed(val / 1000.0f);
ctx.trackpoint.setSpeed(val / 1000.0f);
break;
case 7:
if (val != 0xffff)
trackpoint.setPower(val);
ctx.trackpoint.setPower(val);
break;
case 13:
if (val != 0x7f)
trackpoint.setTemperature((qint8)val);
ctx.trackpoint.setTemperature((qint8)val);
break;
default:
break;
}
} else if (def->globalId == EVENT_MESSAGE) {
switch (field->id) {
case 0:
event.id = val;
break;
case 1:
event.type = val;
break;
case 3:
event.data = val;
break;
}
}
}
for (i = 0; i < def->numDevFields; i++) {
for (int i = 0; i < def->numDevFields; i++) {
field = &def->devFields[i];
if (!readField(field, val))
if (!readField(ctx, field, val))
return false;
}
if (def->globalId == RECORD_MESSAGE) {
if (trackpoint.coordinates().isValid()) {
trackpoint.setTimestamp(QDateTime::fromTime_t(timestamp
if (def->globalId == EVENT_MESSAGE) {
if ((event.id == 42 || event.id == 43) && event.type == 3) {
quint32 front = ((event.data & 0xFF000000) >> 24);
quint32 rear = ((event.data & 0x0000FF00) >> 8);
ctx.ratio = ((qreal)front / (qreal)rear);
}
} else if (def->globalId == RECORD_MESSAGE) {
if (ctx.timestamp > ctx.lastWrite
&& ctx.trackpoint.coordinates().isValid()) {
ctx.trackpoint.setTimestamp(QDateTime::fromTime_t(ctx.timestamp
+ 631065600));
track.append(trackpoint);
} else {
if (trackpoint.coordinates().isNull())
warning("Missing coordinates");
else {
_errorString = "Invalid coordinates";
return false;
}
ctx.trackpoint.setRatio(ctx.ratio);
ctx.track.append(ctx.trackpoint);
ctx.trackpoint = Trackpoint();
ctx.lastWrite = ctx.timestamp;
}
}
return true;
}
bool FITParser::parseDataMessage(TrackData &track, quint8 header)
bool FITParser::parseDataMessage(CTX &ctx, quint8 header)
{
int local_id = header & 0xf;
MessageDefinition* def = &_defs[local_id];
return parseData(track, def, 0);
MessageDefinition *def = &(ctx.defs[local_id]);
return parseData(ctx, def);
}
bool FITParser::parseCompressedMessage(TrackData &track, quint8 header)
bool FITParser::parseCompressedMessage(CTX &ctx, quint8 header)
{
int local_id = (header >> 5) & 3;
MessageDefinition* def = &_defs[local_id];
return parseData(track, def, header & 0x1f);
MessageDefinition *def = &(ctx.defs[local_id]);
ctx.timestamp += header & 0x1f;
return parseData(ctx, def);
}
bool FITParser::parseRecord(TrackData &track)
bool FITParser::parseRecord(CTX &ctx)
{
quint8 header;
if (!readValue(header))
if (!readValue(ctx, header))
return false;
if (header & 0x80)
return parseCompressedMessage(track, header);
return parseCompressedMessage(ctx, header);
else if (header & 0x40)
return parseDefinitionMessage(header);
return parseDefinitionMessage(ctx, header);
else
return parseDataMessage(track, header);
return parseDataMessage(ctx, header);
}
bool FITParser::parseHeader()
bool FITParser::parseHeader(CTX &ctx)
{
FileHeader hdr;
quint16 crc;
qint64 len;
STATIC_ASSERT(sizeof(hdr) == 12);
len = _device->read((char*)&hdr, sizeof(hdr));
len = ctx.file->read((char*)&hdr, sizeof(hdr));
if (len < 0) {
_errorString = "I/O error";
return false;
} else if ((size_t)len < sizeof(hdr)
|| hdr.magic != qToLittleEndian(FIT_MAGIC)) {
|| hdr.magic != qToLittleEndian((quint32)FIT_MAGIC)) {
_errorString = "Not a FIT file";
return false;
}
_len = qFromLittleEndian(hdr.dataSize);
ctx.len = qFromLittleEndian(hdr.dataSize);
if (hdr.headerSize > sizeof(hdr))
if (!readData((char *)&crc, sizeof(crc)))
if (!readData(ctx.file, (char *)&crc, sizeof(crc)))
return false;
return true;
@ -342,23 +376,17 @@ bool FITParser::parse(QFile *file, QList<TrackData> &tracks,
{
Q_UNUSED(routes);
Q_UNUSED(waypoints);
bool ret = true;
CTX ctx(file);
_device = file;
_endian = 0;
_timestamp = 0;
if (!parseHeader())
if (!parseHeader(ctx))
return false;
tracks.append(TrackData());
TrackData &track = tracks.last();
while (ctx.len)
if (!parseRecord(ctx))
return false;
while (_len)
if ((ret = parseRecord(track)) == false)
break;
tracks.append(ctx.track);
clearDefinitions();
return ret;
return true;
}

View File

@ -3,63 +3,34 @@
#include "parser.h"
class QFile;
class FITParser : public Parser
{
public:
FITParser();
bool parse(QFile *file, QList<TrackData> &tracks, QList<RouteData> &routes,
QList<Waypoint> &waypoints);
QString errorString() const {return _errorString;}
int errorLine() const {return 0;}
private:
struct FileHeader {
quint8 headerSize;
quint8 protocolVersion;
quint16 profileVersion;
quint32 dataSize;
quint32 magic;
};
struct Field;
class MessageDefinition;
class CTX;
struct Field {
quint8 id;
quint8 size;
quint8 type;
};
bool readData(QFile *file, char *data, size_t size);
template<class T> bool readValue(CTX &ctx, T &val);
bool skipValue(CTX &ctx, size_t size);
bool readField(CTX &ctx, Field *field, quint32 &val);
struct MessageDefinition {
quint8 endian;
quint16 globalId;
quint8 numFields;
Field *fields;
quint8 numDevFields;
Field *devFields;
};
bool parseHeader(CTX &ctx);
bool parseRecord(CTX &ctx);
bool parseDefinitionMessage(CTX &ctx, quint8 header);
bool parseCompressedMessage(CTX &ctx, quint8 header);
bool parseDataMessage(CTX &ctx, quint8 header);
bool parseData(CTX &ctx, const MessageDefinition *def);
void warning(const char *text) const;
void clearDefinitions();
bool readData(char *data, size_t size);
template<class T> bool readValue(T &val);
bool skipValue(size_t size);
bool parseHeader();
bool parseRecord(TrackData &track);
bool parseDefinitionMessage(quint8 header);
bool parseCompressedMessage(TrackData &track, quint8 header);
bool parseDataMessage(TrackData &track, quint8 header);
bool parseData(TrackData &track, MessageDefinition *def, quint8 offset);
bool readField(Field *f, quint32 &val);
QIODevice *_device;
QString _errorString;
quint32 _len;
quint8 _endian;
quint32 _timestamp;
MessageDefinition _defs[16];
};
#endif // FITPARSER_H

View File

@ -6,6 +6,26 @@ static qint64 delphi2unixMS(double date)
return (qint64)((date - 25569.0) * 86400000);
}
static bool isASCII(const QByteArray &ba)
{
for (int i = 0; i < ba.size(); i++) {
quint8 c = (quint8)ba.at(i);
if (c > 0x7f && c != 0xD1)
return false;
}
return true;
}
static QByteArray &decode(QByteArray &ba)
{
if (isASCII(ba))
ba.replace('\xD1', ',');
return ba;
}
bool PLTParser::parse(QFile *file, QList<TrackData> &tracks,
QList<RouteData> &routes, QList<Waypoint> &waypoints)
{
@ -24,7 +44,8 @@ bool PLTParser::parse(QFile *file, QList<TrackData> &tracks,
QByteArray line = file->readLine();
if (_errorLine == 1) {
if (!line.trimmed().startsWith("OziExplorer Track Point File")) {
QString fileType(QString::fromUtf8(line).trimmed());
if (!fileType.startsWith("OziExplorer Track Point File")) {
_errorString = "Not a PLT file";
return false;
}
@ -107,7 +128,8 @@ bool RTEParser::parse(QFile *file, QList<TrackData> &tracks,
QByteArray line = file->readLine();
if (_errorLine == 1) {
if (!line.trimmed().startsWith("OziExplorer Route File")) {
QString fileType(QString::fromUtf8(line).trimmed());
if (!fileType.startsWith("OziExplorer Route File")) {
_errorString = "Not a RTE file";
return false;
}
@ -127,12 +149,14 @@ bool RTEParser::parse(QFile *file, QList<TrackData> &tracks,
routes.append(RouteData());
record = true;
if (list.size() >= 3)
routes.last().setName(list.at(2).trimmed()
.replace('\xD1', ','));
if (list.size() >= 4)
routes.last().setDescription(list.at(3).trimmed()
.replace('\xD1', ','));
if (list.size() >= 3) {
QByteArray name(list.at(2).trimmed());
routes.last().setName(decode(name));
}
if (list.size() >= 4) {
QByteArray description(list.at(3).trimmed());
routes.last().setDescription(decode(description));
}
} else if (list.at(0).trimmed() == "W") {
if (!record || list.size() < 7) {
_errorString = "Parse error";
@ -152,9 +176,9 @@ bool RTEParser::parse(QFile *file, QList<TrackData> &tracks,
Waypoint wp(gcs->toWGS84(Coordinates(lon, lat)));
QString name(list.at(4).trimmed().replace('\xD1', ','));
QByteArray name(list.at(4).trimmed());
if (!name.isEmpty())
wp.setName(name);
wp.setName(decode(name));
if (list.size() >= 8) {
QByteArray field(list.at(7).trimmed());
if (!field.isEmpty()) {
@ -168,9 +192,9 @@ bool RTEParser::parse(QFile *file, QList<TrackData> &tracks,
}
}
if (list.size() >= 14) {
QString desc(list.at(13).trimmed().replace('\xD1', ','));
if (!desc.isEmpty())
wp.setDescription(desc);
QByteArray description(list.at(13).trimmed());
if (!description.isEmpty())
wp.setDescription(decode(description));
}
routes.last().append(wp);
@ -201,7 +225,8 @@ bool WPTParser::parse(QFile *file, QList<TrackData> &tracks,
QByteArray line = file->readLine();
if (_errorLine == 1) {
if (!line.trimmed().startsWith("OziExplorer Waypoint File")) {
QString fileType(QString::fromUtf8(line).trimmed());
if (!fileType.startsWith("OziExplorer Waypoint File")) {
_errorString = "Not a WPT file";
return false;
}
@ -230,9 +255,9 @@ bool WPTParser::parse(QFile *file, QList<TrackData> &tracks,
Waypoint wp(gcs->toWGS84(Coordinates(lon, lat)));
QString name(list.at(1).trimmed().replace('\xD1', ','));
QByteArray name(list.at(1).trimmed());
if (!name.isEmpty())
wp.setName(name);
wp.setName(decode(name));
if (list.size() >= 5) {
QByteArray field(list.at(4).trimmed());
if (!field.isEmpty()) {
@ -246,9 +271,9 @@ bool WPTParser::parse(QFile *file, QList<TrackData> &tracks,
}
}
if (list.size() >= 11) {
QString desc(list.at(10).trimmed().replace('\xD1', ','));
if (!desc.isEmpty())
wp.setDescription(desc);
QByteArray description(list.at(10).trimmed());
if (!description.isEmpty())
wp.setDescription(decode(description));
}
if (list.size() >= 15) {
QByteArray field(list.at(14).trimmed());

View File

@ -1,7 +1,5 @@
#include "track.h"
#define OUTLIER_WINDOW 21
int Track::_elevationWindow = 3;
int Track::_speedWindow = 5;
int Track::_heartRateWindow = 3;
@ -12,15 +10,16 @@ qreal Track::_pauseSpeed = 0.5;
int Track::_pauseInterval = 10;
bool Track::_outlierEliminate = true;
bool Track::_useReportedSpeed = false;
static qreal median(QVector<qreal> v)
static qreal median(QVector<qreal> &v)
{
qSort(v.begin(), v.end());
return v.at(v.size() / 2);
}
static qreal MAD(QVector<qreal> v, qreal m)
static qreal MAD(QVector<qreal> &v, qreal m)
{
for (int i = 0; i < v.size(); i++)
v[i] = qAbs(v.at(i) - m);
@ -28,21 +27,17 @@ static qreal MAD(QVector<qreal> v, qreal m)
return v.at(v.size() / 2);
}
static QSet<int> eliminate(const QVector<qreal> &v, int window)
static QSet<int> eliminate(const QVector<qreal> &v)
{
QSet<int> rm;
qreal m, M;
QVector<qreal> w(v);
qreal m = median(w);
qreal M = MAD(w, m);
if (v.size() < window)
return rm;
for (int i = window/2; i < v.size() - window/2; i++) {
m = median(v.mid(i - window/2, window));
M = MAD(v.mid(i - window/2, window), m);
if (qAbs((0.6745 * (v.at(i) - m)) / M) > 3.5)
for (int i = 0; i < v.size(); i++)
if (qAbs((0.6745 * (v.at(i) - m)) / M) > 5)
rm.insert(i);
}
return rm;
}
@ -74,37 +69,33 @@ static Graph filter(const Graph &g, int window)
Track::Track(const TrackData &data) : _data(data)
{
qreal dt, ds, total;
int last;
QVector<qreal> acceleration;
qreal ds, dt;
_time.append(0);
_distance.append(0);
_speed.append(0);
last = 0;
acceleration.append(0);
for (int i = 1; i < _data.count(); i++) {
ds = _data.at(i).coordinates().distanceTo(_data.at(i-1).coordinates());
_distance.append(ds);
_distance.append(_distance.at(i-1) + ds);
if (_data.first().hasTimestamp() && _data.at(i).hasTimestamp()
&& _data.at(i).timestamp() >= _data.at(last).timestamp()) {
&& _data.at(i).timestamp() >= _data.at(i-1).timestamp())
_time.append(_data.first().timestamp().msecsTo(
_data.at(i).timestamp()) / 1000.0);
last = i;
} else
else
_time.append(NAN);
if (std::isnan(_time.at(i)) || std::isnan(_time.at(i-1)))
_speed.append(NAN);
else {
dt = _time.at(i) - _time.at(i-1);
if (dt < 1e-3) {
_speed.append(_speed.at(i-1));
continue;
}
acceleration.append(acceleration.at(i-1));
} else {
_speed.append(ds / dt);
qreal dv = _speed.at(i) - _speed.at(i-1);
acceleration.append(dv / dt);
}
}
@ -118,20 +109,37 @@ Track::Track(const TrackData &data) : _data(data)
}
}
if (_outlierEliminate)
_outliers = eliminate(_speed, OUTLIER_WINDOW);
if (!_outlierEliminate)
return;
_outliers = eliminate(acceleration);
QSet<int>::const_iterator it;
for (it = _stop.constBegin(); it != _stop.constEnd(); ++it)
_outliers.remove(*it);
total = 0;
int last = 0;
for (int i = 0; i < _data.size(); i++) {
if (_outliers.contains(i))
last++;
else
break;
}
for (int i = last + 1; i < _data.size(); i++) {
if (_outliers.contains(i))
continue;
if (!discardStopPoint(i))
total += _distance.at(i);
_distance[i] = total;
if (discardStopPoint(i)) {
_distance[i] = _distance.at(last);
_speed[i] = 0;
} else {
ds = _data.at(i).coordinates().distanceTo(
_data.at(last).coordinates());
_distance[i] = _distance.at(last) + ds;
dt = _time.at(i) - _time.at(last);
_speed[i] = (dt < 1e-3) ? _speed.at(last) : ds / dt;
}
last = i;
}
}
@ -151,14 +159,15 @@ Graph Track::speed() const
{
Graph raw, filtered;
qreal v;
QSet<int> stop;
QList<int> stop;
for (int i = 0; i < _data.size(); i++) {
if (_stop.contains(i) && (!std::isnan(_speed.at(i))
|| _data.at(i).hasSpeed())) {
v = 0;
stop.insert(raw.size());
} else if (_data.at(i).hasSpeed() && !_outliers.contains(i))
stop.append(raw.size());
} else if (_useReportedSpeed && _data.at(i).hasSpeed()
&& !_outliers.contains(i))
v = _data.at(i).speed();
else if (!std::isnan(_speed.at(i)) && !_outliers.contains(i))
v = _speed.at(i);
@ -170,9 +179,8 @@ Graph Track::speed() const
filtered = filter(raw, _speedWindow);
QSet<int>::const_iterator it;
for (it = stop.constBegin(); it != stop.constEnd(); ++it)
filtered[*it].setY(0);
for (int i = 0; i < stop.size(); i++)
filtered[stop.at(i)].setY(0);
return filtered;
}
@ -201,16 +209,28 @@ Graph Track::temperature() const
return raw;
}
Graph Track::ratio() const
{
Graph raw;
for (int i = 0; i < _data.size(); i++)
if (_data.at(i).hasRatio() && !_outliers.contains(i))
raw.append(GraphPoint(_distance.at(i), _time.at(i),
_data.at(i).ratio()));
return raw;
}
Graph Track::cadence() const
{
Graph raw, filtered;
QSet<int> stop;
QList<int> stop;
qreal c;
for (int i = 0; i < _data.size(); i++) {
if (_data.at(i).hasCadence() && _stop.contains(i)) {
c = 0;
stop.insert(raw.size());
stop.append(raw.size());
} else if (_data.at(i).hasCadence() && !_outliers.contains(i))
c = _data.at(i).cadence();
else
@ -221,9 +241,8 @@ Graph Track::cadence() const
filtered = filter(raw, _cadenceWindow);
QSet<int>::const_iterator it;
for (it = stop.constBegin(); it != stop.constEnd(); ++it)
filtered[*it].setY(0);
for (int i = 0; i < stop.size(); i++)
filtered[stop.at(i)].setY(0);
return filtered;
}
@ -231,13 +250,13 @@ Graph Track::cadence() const
Graph Track::power() const
{
Graph raw, filtered;
QSet<int> stop;
QList<int> stop;
qreal p;
for (int i = 0; i < _data.size(); i++) {
if (_data.at(i).hasPower() && _stop.contains(i)) {
p = 0;
stop.insert(raw.size());
stop.append(raw.size());
} else if (_data.at(i).hasPower() && !_outliers.contains(i))
p = _data.at(i).power();
else
@ -248,22 +267,29 @@ Graph Track::power() const
filtered = filter(raw, _powerWindow);
QSet<int>::const_iterator it;
for (it = stop.constBegin(); it != stop.constEnd(); ++it)
filtered[*it].setY(0);
for (int i = 0; i < stop.size(); i++)
filtered[stop.at(i)].setY(0);
return filtered;
}
qreal Track::distance() const
{
return _distance.isEmpty() ? 0 : _distance.last();
for (int i = _distance.size() - 1; i >= 0; i--)
if (!_outliers.contains(i))
return _distance.at(i);
return 0;
}
qreal Track::time() const
{
return (_data.size() < 2) ? 0 :
(_data.first().timestamp().msecsTo(_data.last().timestamp()) / 1000.0);
for (int i = _data.size() - 1; i >= 0; i--)
if (!_outliers.contains(i))
return _data.first().timestamp().msecsTo(_data.at(i).timestamp())
/ 1000.0;
return 0;
}
qreal Track::movingTime() const

View File

@ -22,6 +22,7 @@ public:
Graph temperature() const;
Graph cadence() const;
Graph power() const;
Graph ratio() const;
qreal distance() const;
qreal time() const;
@ -42,6 +43,7 @@ public:
static void setPauseInterval(int interval) {_pauseInterval = interval;}
static void setOutlierElimination(bool eliminate)
{_outlierEliminate = eliminate;}
static void useReportedSpeed(bool use) {_useReportedSpeed = use;}
private:
bool discardStopPoint(int i) const;
@ -58,15 +60,14 @@ private:
qreal _pause;
static bool _outlierEliminate;
static int _elevationWindow;
static int _speedWindow;
static int _heartRateWindow;
static int _cadenceWindow;
static int _powerWindow;
static qreal _pauseSpeed;
static int _pauseInterval;
static bool _useReportedSpeed;
};
#endif // TRACK_H

View File

@ -11,10 +11,10 @@ class Trackpoint
public:
Trackpoint()
{_elevation = NAN; _speed = NAN; _heartRate = NAN; _temperature = NAN;
_cadence = NAN; _power = NAN;}
_cadence = NAN; _power = NAN; _ratio = NAN;}
Trackpoint(const Coordinates &coordinates) : _coordinates(coordinates)
{_elevation = NAN; _speed = NAN; _heartRate = NAN; _temperature = NAN;
_cadence = NAN; _power = NAN;}
_cadence = NAN; _power = NAN; _ratio = NAN;}
const Coordinates &coordinates() const {return _coordinates;}
Coordinates &rcoordinates() {return _coordinates;}
@ -25,6 +25,7 @@ public:
qreal temperature() const {return _temperature;}
qreal cadence() const {return _cadence;}
qreal power() const {return _power;}
qreal ratio() const {return _ratio;}
void setCoordinates(const Coordinates &coordinates)
{_coordinates = coordinates;}
@ -35,6 +36,7 @@ public:
void setTemperature(qreal temperature) {_temperature = temperature;}
void setCadence(qreal cadence) {_cadence = cadence;}
void setPower(qreal power) {_power = power;}
void setRatio(qreal ratio) {_ratio = ratio;}
bool hasTimestamp() const {return !_timestamp.isNull();}
bool hasElevation() const {return !std::isnan(_elevation);}
@ -43,6 +45,7 @@ public:
bool hasTemperature() const {return !std::isnan(_temperature);}
bool hasCadence() const {return !std::isnan(_cadence);}
bool hasPower() const {return !std::isnan(_power);}
bool hasRatio() const {return !std::isnan(_ratio);}
private:
Coordinates _coordinates;
@ -53,6 +56,7 @@ private:
qreal _temperature;
qreal _cadence;
qreal _power;
qreal _ratio;
};
Q_DECLARE_TYPEINFO(Trackpoint, Q_MOVABLE_TYPE);
@ -63,7 +67,8 @@ inline QDebug operator<<(QDebug dbg, const Trackpoint &trackpoint)
dbg.nospace() << "Trackpoint(" << trackpoint.coordinates() << ", "
<< trackpoint.timestamp() << ", " << trackpoint.elevation() << ", "
<< trackpoint.speed() << ", " << trackpoint.heartRate() << ", "
<< trackpoint.temperature() << ")";
<< trackpoint.temperature() << ", " << trackpoint.cadence() << ", "
<< trackpoint.power() << ", " << trackpoint.ratio() << ")";
return dbg.space();
}
#endif // QT_NO_DEBUG

View File

@ -12,7 +12,7 @@
#define TL(m) ((m)->xy2pp((m)->bounds().topLeft()))
#define BR(m) ((m)->xy2pp((m)->bounds().bottomRight()))
static bool resCmp(const OfflineMap *m1, const OfflineMap *m2)
static bool resCmp(OfflineMap *m1, OfflineMap *m2)
{
qreal r1, r2;
@ -22,12 +22,12 @@ static bool resCmp(const OfflineMap *m1, const OfflineMap *m2)
return r1 > r2;
}
static bool xCmp(const OfflineMap *m1, const OfflineMap *m2)
static bool xCmp(OfflineMap *m1, OfflineMap *m2)
{
return TL(m1).x() < TL(m2).x();
}
static bool yCmp(const OfflineMap *m1, const OfflineMap *m2)
static bool yCmp(OfflineMap *m1, OfflineMap *m2)
{
return TL(m1).y() > TL(m2).y();
}
@ -147,7 +147,7 @@ Atlas::Atlas(const QString &fileName, QObject *parent)
_valid = true;
}
QRectF Atlas::bounds() const
QRectF Atlas::bounds()
{
QSizeF s(0, 0);
@ -161,20 +161,6 @@ QRectF Atlas::bounds() const
return QRectF(QPointF(0, 0), s);
}
qreal Atlas::resolution(const QRectF &rect) const
{
int idx = _zooms.at(_zoom).first;
for (int i = _zooms.at(_zoom).first; i <= _zooms.at(_zoom).last; i++) {
if (_bounds.at(i).xy.contains(rect.center())) {
idx = i;
break;
}
}
return _maps.at(idx)->resolution(rect);
}
int Atlas::zoomFit(const QSize &size, const RectC &br)
{
_zoom = 0;

View File

@ -13,10 +13,9 @@ class Atlas : public Map
public:
Atlas(const QString &fileName, QObject *parent = 0);
const QString &name() const {return _name;}
QString name() const {return _name;}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
int zoom() const {return _zoom;}
void setZoom(int zoom);

View File

@ -7,9 +7,6 @@
#define ds2scale(x) (1.0 + (x) * 1e-6)
#define scale2ds(x) (((x) - 1.0) / 1e-6)
static Ellipsoid WGS84e = Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING);
static Datum WGS84 = Datum(&WGS84e, 0.0, 0.0, 0.0);
static Coordinates molodensky(const Coordinates &c, const Datum &from,
const Datum &to)
{
@ -46,6 +43,12 @@ static Coordinates molodensky(const Coordinates &c, const Datum &from,
return Coordinates(c.lon() + rad2deg(dlon), c.lat() + rad2deg(dlat));
}
const Datum &Datum::WGS84()
{
static Datum d(&Ellipsoid::WGS84(), 0.0, 0.0, 0.0);
return d;
}
Point3D Datum::helmert(const Point3D &p) const
{
return Point3D(_scale * (p.x() + _rz * p.y() -_ry * p.z()) + _dx,
@ -92,9 +95,9 @@ Coordinates Datum::toWGS84(const Coordinates &c) const
switch (_transformation) {
case Helmert:
return Geocentric::toGeodetic(helmert(Geocentric::fromGeodetic(c,
ellipsoid())), WGS84.ellipsoid());
ellipsoid())), WGS84().ellipsoid());
case Molodensky:
return molodensky(c, *this, WGS84);
return molodensky(c, *this, WGS84());
default:
return c;
}
@ -105,9 +108,9 @@ Coordinates Datum::fromWGS84(const Coordinates &c) const
switch (_transformation) {
case Helmert:
return Geocentric::toGeodetic(helmertr(Geocentric::fromGeodetic(c,
WGS84.ellipsoid())), ellipsoid());
WGS84().ellipsoid())), ellipsoid());
case Molodensky:
return molodensky(c, WGS84, *this);
return molodensky(c, WGS84(), *this);
default:
return c;
}

View File

@ -35,6 +35,8 @@ public:
Coordinates toWGS84(const Coordinates &c) const;
Coordinates fromWGS84(const Coordinates &c) const;
static const Datum &WGS84();
private:
enum TransformationType {
None,

View File

@ -2,7 +2,6 @@
#include <QFileInfo>
#include <QNetworkRequest>
#include <QBasicTimer>
#include "config.h"
#include "downloader.h"
@ -81,6 +80,9 @@ private:
QNetworkAccessManager *Downloader::_manager = 0;
int Downloader::_timeout = 30;
#ifdef ENABLE_HTTP2
bool Downloader::_http2 = true;
#endif // ENABLE_HTTP2
bool Downloader::doDownload(const Download &dl,
const QByteArray &authorization, const Redirect *redirect)
@ -108,6 +110,10 @@ bool Downloader::doDownload(const Download &dl,
request.setRawHeader("User-Agent", USER_AGENT);
if (!authorization.isNull())
request.setRawHeader("Authorization", authorization);
#ifdef ENABLE_HTTP2
request.setAttribute(QNetworkRequest::HTTP2AllowedAttribute,
QVariant(_http2));
#endif // ENABLE_HTTP2
QNetworkReply *reply = _manager->get(request);
if (reply && reply->isRunning()) {

View File

@ -7,6 +7,7 @@
#include <QList>
#include <QSet>
#include <QHash>
#include "config.h"
class Download
@ -46,6 +47,9 @@ public:
void clearErrors() {_errorDownloads.clear();}
static void setTimeout(int timeout) {_timeout = timeout;}
#ifdef ENABLE_HTTP2
static void enableHTTP2(bool enable) {_http2 = enable;}
#endif // ENABLE_HTTP2
static void setNetworkAccessManager(QNetworkAccessManager *manager)
{_manager = manager;}
@ -69,6 +73,9 @@ private:
QHash<QUrl, int> _errorDownloads;
static int _timeout;
#ifdef ENABLE_HTTP2
static bool _http2;
#endif // ENABLE_HTTP2
static QNetworkAccessManager *_manager;
};

View File

@ -3,12 +3,18 @@
#include "common/wgs84.h"
#include "ellipsoid.h"
QMap<int, Ellipsoid> Ellipsoid::_ellipsoids = WGS84();
QMap<int, Ellipsoid> Ellipsoid::_ellipsoids = defaults();
QMap<int, Ellipsoid> Ellipsoid::WGS84()
const Ellipsoid &Ellipsoid::WGS84()
{
static Ellipsoid e(WGS84_RADIUS, WGS84_FLATTENING);
return e;
}
QMap<int, Ellipsoid> Ellipsoid::defaults()
{
QMap<int, Ellipsoid> map;
map.insert(7030, Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING));
map.insert(7030, WGS84());
return map;
}

View File

@ -23,6 +23,7 @@ public:
bool isValid() const
{return !(std::isnan(_radius) || std::isnan(_flattening));}
static const Ellipsoid &WGS84();
static const Ellipsoid *ellipsoid(int id);
static void loadList(const QString &path);
@ -31,7 +32,7 @@ private:
double _flattening;
double _es, _e2s, _b;
static QMap<int, Ellipsoid> WGS84();
static QMap<int, Ellipsoid> defaults();
static QMap<int, Ellipsoid> _ellipsoids;
};

View File

@ -46,7 +46,7 @@ EmptyMap::EmptyMap(QObject *parent) : Map(parent)
_zoom = ZOOM_MAX;
}
QRectF EmptyMap::bounds() const
QRectF EmptyMap::bounds()
{
return QRectF(ll2xy(Coordinates(-180, 85)), ll2xy(Coordinates(180, -85)));
}
@ -65,7 +65,7 @@ int EmptyMap::zoomFit(const QSize &size, const RectC &rect)
return _zoom;
}
qreal EmptyMap::resolution(const QRectF &rect) const
qreal EmptyMap::resolution(const QRectF &rect)
{
qreal scale = zoom2scale(_zoom);
@ -92,14 +92,14 @@ void EmptyMap::draw(QPainter *painter, const QRectF &rect, bool block)
Q_UNUSED(block);
}
QPointF EmptyMap::ll2xy(const Coordinates &c) const
QPointF EmptyMap::ll2xy(const Coordinates &c)
{
qreal scale = zoom2scale(_zoom);
QPointF m = ll2m(c);
return QPointF(m.x() / scale, m.y() / -scale);
}
Coordinates EmptyMap::xy2ll(const QPointF &p) const
Coordinates EmptyMap::xy2ll(const QPointF &p)
{
qreal scale = zoom2scale(_zoom);
return m2ll(QPointF(p.x() * scale, -p.y() * scale));

View File

@ -10,10 +10,10 @@ class EmptyMap : public Map
public:
EmptyMap(QObject *parent = 0);
const QString &name() const {return _name;}
QString name() const {return QString();}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
qreal resolution(const QRectF &rect);
int zoom() const {return _zoom;}
void setZoom(int zoom) {_zoom = zoom;}
@ -21,18 +21,12 @@ public:
int zoomIn();
int zoomOut();
QPointF ll2xy(const Coordinates &c)
{return static_cast<const EmptyMap &>(*this).ll2xy(c);}
Coordinates xy2ll(const QPointF &p)
{return static_cast<const EmptyMap &>(*this).xy2ll(p);}
QPointF ll2xy(const Coordinates &c);
Coordinates xy2ll(const QPointF &p);
void draw(QPainter *painter, const QRectF &rect, bool block);
private:
QPointF ll2xy(const Coordinates &c) const;
Coordinates xy2ll(const QPointF &p) const;
QString _name;
int _zoom;
};

View File

@ -19,9 +19,6 @@ private:
GCS _gcs;
};
static Ellipsoid WGS84e = Ellipsoid(WGS84_RADIUS, WGS84_FLATTENING);
static Datum WGS84d = Datum(&WGS84e, 0.0, 0.0, 0.0);
static int parameter(const QString &str, bool *res)
{
QString field = str.trimmed();
@ -45,12 +42,18 @@ static double parameterd(const QString &str, bool *res)
}
QList<GCS::Entry> GCS::_gcss = WGS84();
QList<GCS::Entry> GCS::_gcss = defaults();
QList<GCS::Entry> GCS::WGS84()
const GCS &GCS::WGS84()
{
static GCS g(Datum::WGS84(), 8901, 9122);
return g;
}
QList<GCS::Entry> GCS::defaults()
{
QList<GCS::Entry> list;
list.append(GCS::Entry(4326, 6326, "WGS 84", GCS(WGS84d, 8901, 9122)));
list.append(GCS::Entry(4326, 6326, "WGS 84", WGS84()));
return list;
}

View File

@ -29,13 +29,14 @@ public:
static const GCS *gcs(int geodeticDatum, int primeMeridian,
int angularUnits);
static const GCS *gcs(const QString &name);
static const GCS &WGS84();
static void loadList(const QString &path);
private:
class Entry;
static QList<Entry> WGS84();
static QList<Entry> defaults();
Datum _datum;
PrimeMeridian _primeMeridian;

View File

@ -31,11 +31,14 @@
#define ProjNatOriginLatGeoKey 3081
#define ProjFalseEastingGeoKey 3082
#define ProjFalseNorthingGeoKey 3083
#define ProjFalseOriginLongGeoKey 3084
#define ProjFalseOriginLatGeoKey 3085
#define ProjFalseOriginEastingGeoKey 3086
#define ProjFalseOriginNorthingGeoKey 3087
#define ProjCenterLongGeoKey 3088
#define ProjCenterLatGeoKey 3089
#define ProjCenterEastingGeoKey 3090
#define ProjFalseOriginNorthingGeoKey 3091
#define ProjCenterNorthingGeoKey 3091
#define ProjScaleAtNatOriginGeoKey 3092
#define ProjScaleAtCenterGeoKey 3093
#define ProjAzimuthAngleGeoKey 3094
@ -252,8 +255,11 @@ bool GeoTIFF::readKeys(TIFFFile &file, Ctx &ctx, QMap<quint16, Value> &kv) const
case ProjScaleAtCenterGeoKey:
case ProjAzimuthAngleGeoKey:
case ProjRectifiedGridAngleGeoKey:
case ProjFalseOriginLongGeoKey:
case ProjFalseOriginLatGeoKey:
case ProjCenterEastingGeoKey:
case ProjCenterNorthingGeoKey:
case ProjFalseOriginEastingGeoKey:
case ProjFalseOriginNorthingGeoKey:
if (!readGeoValue(file, ctx.values, entry.ValueOffset,
value.DOUBLE))
@ -307,9 +313,7 @@ const GCS *GeoTIFF::gcs(QMap<quint16, Value> &kv)
if (!(gcs = GCS::gcs(gd, pm, au)))
_errorString = QString("%1+%2: unknown geodetic datum + prime"
" meridian combination")
.arg(kv.value(GeogGeodeticDatumGeoKey).SHORT)
.arg(kv.value(GeogPrimeMeridianGeoKey).SHORT);
" meridian combination").arg(gd).arg(pm);
} else
_errorString = "Can not determine GCS";
@ -401,6 +405,8 @@ bool GeoTIFF::projectedModel(QMap<quint16, Value> &kv)
lon0 = au.toDegrees(kv.value(ProjNatOriginLongGeoKey).DOUBLE);
else if (kv.contains(ProjCenterLongGeoKey))
lon0 = au.toDegrees(kv.value(ProjCenterLongGeoKey).DOUBLE);
else if (kv.contains(ProjFalseOriginLongGeoKey))
lon0 = au.toDegrees(kv.value(ProjFalseOriginLongGeoKey).DOUBLE);
else
lon0 = NAN;
if (kv.contains(ProjScaleAtNatOriginGeoKey))
@ -423,6 +429,8 @@ bool GeoTIFF::projectedModel(QMap<quint16, Value> &kv)
sp2 = NAN;
if (kv.contains(ProjFalseNorthingGeoKey))
fn = lu.toMeters(kv.value(ProjFalseNorthingGeoKey).DOUBLE);
else if (kv.contains(ProjCenterNorthingGeoKey))
fn = lu.toMeters(kv.value(ProjCenterNorthingGeoKey).DOUBLE);
else if (kv.contains(ProjFalseOriginNorthingGeoKey))
fn = lu.toMeters(kv.value(ProjFalseOriginNorthingGeoKey).DOUBLE);
else
@ -431,6 +439,8 @@ bool GeoTIFF::projectedModel(QMap<quint16, Value> &kv)
fe = lu.toMeters(kv.value(ProjFalseEastingGeoKey).DOUBLE);
else if (kv.contains(ProjCenterEastingGeoKey))
fe = lu.toMeters(kv.value(ProjCenterEastingGeoKey).DOUBLE);
else if (kv.contains(ProjFalseOriginEastingGeoKey))
fe = lu.toMeters(kv.value(ProjFalseOriginEastingGeoKey).DOUBLE);
else
fe = NAN;

View File

@ -1,8 +1,10 @@
#include <QtEndian>
#include <QPainter>
#include <QFileInfo>
#include "transform.h"
#include <QPixmapCache>
#include "rectd.h"
#include "gcs.h"
#include "pcs.h"
#include "jnxmap.h"
@ -82,6 +84,15 @@ bool JNXMap::readTiles()
}
}
QByteArray guid;
if (!(readValue(dummy) && readString(guid)))
return false;
/* Use WebMercator projection for nakarte.tk maps */
if (guid == "12345678-1234-1234-1234-123456789ABC")
_projection = Projection(PCS::pcs(3857));
else
_projection = Projection(GCS::gcs(4326));
_zooms = QVector<Zoom>(lh.size());
for (int i = 0; i < lh.count(); i++) {
Zoom &z = _zooms[i];
@ -102,8 +113,8 @@ bool JNXMap::readTiles()
&& readValue(tile.offset)))
return false;
RectD rect(PointD(ic2dc(left), ic2dc(top)), PointD(ic2dc(right),
ic2dc(bottom)));
RectD rect(_projection.ll2xy(Coordinates(ic2dc(left), ic2dc(top))),
_projection.ll2xy(Coordinates(ic2dc(right), ic2dc(bottom))));
if (j == 0) {
ReferencePoint tl(PointD(0, 0), rect.topLeft());
@ -145,37 +156,21 @@ JNXMap::JNXMap(const QString &fileName, QObject *parent)
_valid = true;
}
QPointF JNXMap::ll2xy(const Coordinates &c) const
QPointF JNXMap::ll2xy(const Coordinates &c)
{
const Transform &t = _zooms.at(_zoom).transform;
return t.proj2img(PointD(c.lon(), c.lat()));
const Zoom &z = _zooms.at(_zoom);
return z.transform.proj2img(_projection.ll2xy(c));
}
Coordinates JNXMap::xy2ll(const QPointF &p) const
Coordinates JNXMap::xy2ll(const QPointF &p)
{
const Transform &t = _zooms.at(_zoom).transform;
PointD pp(t.img2proj(p));
return Coordinates(pp.x(), pp.y());
const Zoom &z = _zooms.at(_zoom);
return _projection.xy2ll(z.transform.img2proj(p));
}
QRectF JNXMap::bounds() const
QRectF JNXMap::bounds()
{
const Transform &t = _zooms.at(_zoom).transform;
return QRectF(t.proj2img(PointD(_bounds.topLeft().lon(),
_bounds.topLeft().lat())), t.proj2img(PointD(_bounds.bottomRight().lon(),
_bounds.bottomRight().lat())));
}
qreal JNXMap::resolution(const QRectF &rect) const
{
Coordinates tl = xy2ll((rect.topLeft()));
Coordinates br = xy2ll(rect.bottomRight());
qreal ds = tl.distanceTo(br);
qreal ps = QLineF(rect.topLeft(), rect.bottomRight()).length();
return ds/ps;
return QRectF(ll2xy(_bounds.topLeft()), ll2xy(_bounds.bottomRight()));
}
int JNXMap::zoomFit(const QSize &size, const RectC &rect)
@ -212,6 +207,10 @@ int JNXMap::zoomOut()
QPixmap JNXMap::pixmap(const Tile *tile, QFile *file)
{
QPixmap pm;
QString key = file->fileName() + "-" + QString::number(tile->offset);
if (!QPixmapCache::find(key, &pm)) {
QByteArray ba;
ba.resize(tile->size + 2);
ba[0] = (char)0xFF;
@ -222,8 +221,13 @@ QPixmap JNXMap::pixmap(const Tile *tile, QFile *file)
return QPixmap();
if (!file->read(data, tile->size))
return QPixmap();
pm = QPixmap::fromImage(QImage::fromData(ba));
return QPixmap::fromImage(QImage::fromData(ba));
if (!pm.isNull())
QPixmapCache::insert(key, pm);
}
return pm;
}
bool JNXMap::cb(Tile *tile, void *context)

View File

@ -6,6 +6,7 @@
#include "common/rtree.h"
#include "common/rectc.h"
#include "transform.h"
#include "projection.h"
#include "map.h"
class JNXMap : public Map
@ -16,10 +17,9 @@ public:
public:
JNXMap(const QString &fileName, QObject *parent = 0);
const QString &name() const {return _name;}
QString name() const {return _name;}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
int zoom() const {return _zoom;}
void setZoom(int zoom) {_zoom = zoom;}
@ -27,10 +27,8 @@ public:
int zoomIn();
int zoomOut();
QPointF ll2xy(const Coordinates &c)
{return static_cast<const JNXMap &>(*this).ll2xy(c);}
Coordinates xy2ll(const QPointF &p)
{return static_cast<const JNXMap &>(*this).xy2ll(p);}
QPointF ll2xy(const Coordinates &c);
Coordinates xy2ll(const QPointF &p);
void draw(QPainter *painter, const QRectF &rect, bool block);
@ -50,9 +48,6 @@ private:
RTree<Tile*, qreal, 2> tree;
};
QPointF ll2xy(const Coordinates &c) const;
Coordinates xy2ll(const QPointF &p) const;
template<class T> bool readValue(T &val);
bool readString(QByteArray &ba);
bool readTiles();
@ -65,6 +60,7 @@ private:
QVector<Zoom> _zooms;
int _zoom;
RectC _bounds;
Projection _projection;
bool _valid;
QString _errorString;

14
src/map/map.cpp Normal file
View File

@ -0,0 +1,14 @@
#include <QLineF>
#include "map.h"
qreal Map::resolution(const QRectF &rect)
{
qreal cy = rect.center().y();
QPointF cl(rect.left(), cy);
QPointF cr(rect.right(), cy);
qreal ds = xy2ll(cl).distanceTo(xy2ll(cr));
qreal ps = QLineF(cl, cr).length();
return ds/ps;
}

View File

@ -4,7 +4,6 @@
#include <QObject>
#include <QString>
#include <QRectF>
#include <QColor>
#include "common/coordinates.h"
class QPainter;
@ -18,10 +17,10 @@ public:
Map(QObject *parent = 0) : QObject(parent) {}
virtual ~Map() {}
virtual const QString &name() const = 0;
virtual QString name() const = 0;
virtual QRectF bounds() const = 0;
virtual qreal resolution(const QRectF &rect) const = 0;
virtual QRectF bounds() = 0;
virtual qreal resolution(const QRectF &rect);
virtual int zoom() const = 0;
virtual void setZoom(int zoom) = 0;

View File

@ -5,12 +5,12 @@
#include "mapfile.h"
static double parameter(const QString &str, bool *res)
static double parameter(const QString &str, bool *res, double def = 0.0)
{
QString field = str.trimmed();
if (field.isEmpty()) {
*res = true;
return NAN;
return def;
}
return field.toDouble(res);
@ -26,7 +26,8 @@ int MapFile::parse(QIODevice &device, QList<CalibrationPoint> &points,
QByteArray line = device.readLine();
if (ln == 1) {
if (!line.trimmed().startsWith("OziExplorer Map Data File"))
QString fileType(QString::fromUtf8(line).trimmed());
if (!fileType.startsWith("OziExplorer Map Data File"))
return ln;
} else if (ln == 2)
_name = line.trimmed();
@ -116,7 +117,7 @@ int MapFile::parse(QIODevice &device, QList<CalibrationPoint> &points,
setup = Projection::Setup(
parameter(list[1], &r[1]), parameter(list[2], &r[2]),
parameter(list[3], &r[3]), parameter(list[4], &r[4]),
parameter(list[3], &r[3], 1.0), parameter(list[4], &r[4]),
parameter(list[5], &r[5]), parameter(list[6], &r[6]),
parameter(list[7], &r[7]));

View File

@ -319,13 +319,13 @@ void OfflineMap::draw(QPainter *painter, const QRectF &rect, bool block)
drawImage(painter, rect);
}
QPointF OfflineMap::ll2xy(const Coordinates &c) const
QPointF OfflineMap::ll2xy(const Coordinates &c)
{
QPointF p(_transform.proj2img(_projection.ll2xy(c)));
return _ozf ? QPointF(p.x() * _scale.x(), p.y() * _scale.y()) : p;
}
Coordinates OfflineMap::xy2ll(const QPointF &p) const
Coordinates OfflineMap::xy2ll(const QPointF &p)
{
return _ozf
? _projection.xy2ll(_transform.img2proj(QPointF(p.x() / _scale.x(),
@ -333,24 +333,13 @@ Coordinates OfflineMap::xy2ll(const QPointF &p) const
: _projection.xy2ll(_transform.img2proj(p));
}
QRectF OfflineMap::bounds() const
QRectF OfflineMap::bounds()
{
return _ozf
? QRectF(QPointF(0, 0), _ozf->size(_zoom))
: QRectF(QPointF(0, 0), _map.size);
}
qreal OfflineMap::resolution(const QRectF &rect) const
{
Coordinates tl = xy2ll((rect.topLeft()));
Coordinates br = xy2ll(rect.bottomRight());
qreal ds = tl.distanceTo(br);
qreal ps = QLineF(rect.topLeft(), rect.bottomRight()).length();
return ds/ps;
}
int OfflineMap::zoomFit(const QSize &size, const RectC &rect)
{
if (!_ozf)

View File

@ -18,10 +18,9 @@ public:
OfflineMap(const QString &fileName, Tar &tar, QObject *parent = 0);
~OfflineMap();
const QString &name() const {return _name;}
QString name() const {return _name;}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
int zoom() const {return _zoom;}
void setZoom(int zoom) {_zoom = zoom;}
@ -29,10 +28,8 @@ public:
int zoomIn();
int zoomOut();
QPointF ll2xy(const Coordinates &c)
{return static_cast<const OfflineMap &>(*this).ll2xy(c);}
Coordinates xy2ll(const QPointF &p)
{return static_cast<const OfflineMap &>(*this).xy2ll(p);}
QPointF ll2xy(const Coordinates &c);
Coordinates xy2ll(const QPointF &p);
void draw(QPainter *painter, const QRectF &rect, bool block);
@ -57,9 +54,6 @@ private:
bool isValid() const {return size.isValid() && !path.isEmpty();}
};
QPointF ll2xy(const Coordinates &c) const;
Coordinates xy2ll(const QPointF &p) const;
bool setTileInfo(const QStringList &tiles, const QString &path = QString());
bool setImageInfo(const QString &path);

View File

@ -64,7 +64,7 @@ OnlineMap::OnlineMap(const QString &name, const QString &url,
_valid = true;
}
QRectF OnlineMap::bounds() const
QRectF OnlineMap::bounds()
{
return QRectF(ll2xy(_bounds.topLeft()), ll2xy(_bounds.bottomRight()));
}
@ -92,7 +92,7 @@ int OnlineMap::zoomFit(const QSize &size, const RectC &rect)
return _zoom;
}
qreal OnlineMap::resolution(const QRectF &rect) const
qreal OnlineMap::resolution(const QRectF &rect)
{
qreal scale = zoom2scale(_zoom);
@ -141,14 +141,14 @@ void OnlineMap::draw(QPainter *painter, const QRectF &rect, bool block)
}
}
QPointF OnlineMap::ll2xy(const Coordinates &c) const
QPointF OnlineMap::ll2xy(const Coordinates &c)
{
qreal scale = zoom2scale(_zoom);
QPointF m = ll2m(c);
return QPointF(m.x() / scale, m.y() / -scale);
}
Coordinates OnlineMap::xy2ll(const QPointF &p) const
Coordinates OnlineMap::xy2ll(const QPointF &p)
{
qreal scale = zoom2scale(_zoom);
return m2ll(QPointF(p.x() * scale, -p.y() * scale));

View File

@ -15,10 +15,10 @@ public:
const RectC &bounds, const Authorization &authorization,
QObject *parent = 0);
const QString &name() const {return _name;}
QString name() const {return _name;}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
qreal resolution(const QRectF &rect);
int zoom() const {return _zoom;}
void setZoom(int zoom) {_zoom = zoom;}
@ -26,10 +26,8 @@ public:
int zoomIn();
int zoomOut();
QPointF ll2xy(const Coordinates &c)
{return static_cast<const OnlineMap &>(*this).ll2xy(c);}
Coordinates xy2ll(const QPointF &p)
{return static_cast<const OnlineMap &>(*this).xy2ll(p);}
QPointF ll2xy(const Coordinates &c);
Coordinates xy2ll(const QPointF &p);
void draw(QPainter *painter, const QRectF &rect, bool block);
@ -39,8 +37,6 @@ public:
QString errorString() const {return _errorString;}
private:
QPointF ll2xy(const Coordinates &c) const;
Coordinates xy2ll(const QPointF &p) const;
int limitZoom(int zoom) const;
TileLoader *_tileLoader;

View File

@ -16,7 +16,15 @@ private:
PCS _pcs;
};
QList<PCS::Entry> PCS::_pcss;
QList<PCS::Entry> PCS::_pcss = defaults();
QList<PCS::Entry> PCS::defaults()
{
QList<PCS::Entry> list;
list.append(PCS::Entry(3857, 3856, PCS(&GCS::WGS84(), 1024,
Projection::Setup(0, 0, NAN, 0, 0, NAN, NAN), 9001, 4499)));
return list;
}
static bool parameter(int key, double val, int units, Projection::Setup &setup)
{

View File

@ -38,6 +38,8 @@ public:
private:
class Entry;
static QList<PCS::Entry> defaults();
const GCS *_gcs;
Projection::Method _method;
Projection::Setup _setup;

View File

@ -1,6 +1,7 @@
#ifndef TILE_H
#define TILE_H
#include <QVariant>
#include <QPixmap>
#include <QPoint>
#include <QDebug>

View File

@ -102,7 +102,8 @@ bool WMSMap::loadWMS()
}
WMSMap::WMSMap(const QString &name, const WMS::Setup &setup, QObject *parent)
: Map(parent), _name(name), _setup(setup), _zoom(0), _valid(false)
: Map(parent), _name(name), _setup(setup), _tileLoader(0), _zoom(0),
_valid(false)
{
if (!QDir().mkpath(tilesDir())) {
_errorString = "Error creating tiles dir";
@ -126,23 +127,12 @@ void WMSMap::clearCache()
qWarning("%s: %s\n", qPrintable(_name), qPrintable(_errorString));
}
QRectF WMSMap::bounds() const
QRectF WMSMap::bounds()
{
return QRectF(_transform.proj2img(_bbox.topLeft()),
_transform.proj2img(_bbox.bottomRight()));
}
qreal WMSMap::resolution(const QRectF &rect) const
{
Coordinates tl = xy2ll((rect.topLeft()));
Coordinates br = xy2ll(rect.bottomRight());
qreal ds = tl.distanceTo(br);
qreal ps = QLineF(rect.topLeft(), rect.bottomRight()).length();
return ds/ps;
}
int WMSMap::zoomFit(const QSize &size, const RectC &rect)
{
if (rect.isValid()) {
@ -187,12 +177,12 @@ int WMSMap::zoomOut()
return _zoom;
}
QPointF WMSMap::ll2xy(const Coordinates &c) const
QPointF WMSMap::ll2xy(const Coordinates &c)
{
return _transform.proj2img(_projection.ll2xy(c));
}
Coordinates WMSMap::xy2ll(const QPointF &p) const
Coordinates WMSMap::xy2ll(const QPointF &p)
{
return _projection.xy2ll(_transform.img2proj(p));
}

View File

@ -16,10 +16,9 @@ class WMSMap : public Map
public:
WMSMap(const QString &name, const WMS::Setup &setup, QObject *parent = 0);
const QString &name() const {return _name;}
QString name() const {return _name;}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
int zoom() const {return _zoom;}
void setZoom(int zoom);
@ -27,10 +26,8 @@ public:
int zoomIn();
int zoomOut();
QPointF ll2xy(const Coordinates &c)
{return static_cast<const WMSMap &>(*this).ll2xy(c);}
Coordinates xy2ll(const QPointF &p)
{return static_cast<const WMSMap &>(*this).xy2ll(p);}
QPointF ll2xy(const Coordinates &c);
Coordinates xy2ll(const QPointF &p);
void draw(QPainter *painter, const QRectF &rect, bool block);
@ -47,9 +44,6 @@ private:
void updateTransform();
bool loadWMS();
QPointF ll2xy(const Coordinates &c) const;
Coordinates xy2ll(const QPointF &p) const;
QString _name;
WMS::Setup _setup;

View File

@ -36,7 +36,8 @@ bool WMTSMap::loadWMTS()
}
WMTSMap::WMTSMap(const QString &name, const WMTS::Setup &setup, QObject *parent)
: Map(parent), _name(name), _setup(setup), _zoom(0), _valid(false)
: Map(parent), _name(name), _setup(setup), _tileLoader(0), _zoom(0),
_valid(false)
{
if (!QDir().mkpath(tilesDir())) {
_errorString = "Error creating tiles dir";
@ -90,7 +91,7 @@ void WMTSMap::updateTransform()
_transform = Transform(tl, br);
}
QRectF WMTSMap::bounds() const
QRectF WMTSMap::bounds()
{
const WMTS::Zoom &z = _zooms.at(_zoom);
QRectF tileBounds, bounds;
@ -132,17 +133,6 @@ int WMTSMap::zoomFit(const QSize &size, const RectC &rect)
return _zoom;
}
qreal WMTSMap::resolution(const QRectF &rect) const
{
Coordinates tl = xy2ll((rect.topLeft()));
Coordinates br = xy2ll(rect.bottomRight());
qreal ds = tl.distanceTo(br);
qreal ps = QLineF(rect.topLeft(), rect.bottomRight()).length();
return ds/ps;
}
void WMTSMap::setZoom(int zoom)
{
_zoom = zoom;
@ -189,12 +179,12 @@ void WMTSMap::draw(QPainter *painter, const QRectF &rect, bool block)
}
}
QPointF WMTSMap::ll2xy(const Coordinates &c) const
QPointF WMTSMap::ll2xy(const Coordinates &c)
{
return _transform.proj2img(_projection.ll2xy(c));
}
Coordinates WMTSMap::xy2ll(const QPointF &p) const
Coordinates WMTSMap::xy2ll(const QPointF &p)
{
return _projection.xy2ll(_transform.img2proj(p));
}

View File

@ -15,10 +15,9 @@ class WMTSMap : public Map
public:
WMTSMap(const QString &name, const WMTS::Setup &setup, QObject *parent = 0);
const QString &name() const {return _name;}
QString name() const {return _name;}
QRectF bounds() const;
qreal resolution(const QRectF &rect) const;
QRectF bounds();
int zoom() const {return _zoom;}
void setZoom(int zoom);
@ -26,10 +25,8 @@ public:
int zoomIn();
int zoomOut();
QPointF ll2xy(const Coordinates &c)
{return static_cast<const WMTSMap &>(*this).ll2xy(c);}
Coordinates xy2ll(const QPointF &p)
{return static_cast<const WMTSMap &>(*this).xy2ll(p);}
QPointF ll2xy(const Coordinates &c);
Coordinates xy2ll(const QPointF &p);
void draw(QPainter *painter, const QRectF &rect, bool block);
@ -44,9 +41,6 @@ private:
QString tilesDir() const;
void updateTransform();
QPointF ll2xy(const Coordinates &c) const;
Coordinates xy2ll(const QPointF &p) const;
QString _name;
WMTS::Setup _setup;
TileLoader *_tileLoader;