mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-07-02 05:49:15 +02:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
699e4f32d5 | |||
992c8aaaf9 | |||
68a72c5809 | |||
eace308774 | |||
e4e3f7d143 | |||
acc49d015e | |||
b48652cb78 | |||
0808f6679e | |||
610ac3d73f |
12
gpxsee.pro
12
gpxsee.pro
@ -1,5 +1,5 @@
|
||||
TARGET = GPXSee
|
||||
VERSION = 4.4
|
||||
VERSION = 4.5
|
||||
QT += core \
|
||||
gui \
|
||||
network
|
||||
@ -23,7 +23,6 @@ HEADERS += src/config.h \
|
||||
src/filebrowser.h \
|
||||
src/map.h \
|
||||
src/onlinemap.h \
|
||||
src/maplist.h \
|
||||
src/downloader.h \
|
||||
src/units.h \
|
||||
src/scaleitem.h \
|
||||
@ -81,7 +80,6 @@ HEADERS += src/config.h \
|
||||
src/timetype.h \
|
||||
src/emptymap.h \
|
||||
src/offlinemap.h \
|
||||
src/mapdir.h \
|
||||
src/matrix.h \
|
||||
src/tar.h \
|
||||
src/atlas.h \
|
||||
@ -93,7 +91,8 @@ HEADERS += src/config.h \
|
||||
src/lambertconic.h \
|
||||
src/ellipsoid.h \
|
||||
src/ozf.h \
|
||||
src/datum.h
|
||||
src/datum.h \
|
||||
src/maplist.h
|
||||
SOURCES += src/main.cpp \
|
||||
src/gui.cpp \
|
||||
src/poi.cpp \
|
||||
@ -106,7 +105,6 @@ SOURCES += src/main.cpp \
|
||||
src/sliderinfoitem.cpp \
|
||||
src/filebrowser.cpp \
|
||||
src/onlinemap.cpp \
|
||||
src/maplist.cpp \
|
||||
src/downloader.cpp \
|
||||
src/scaleitem.cpp \
|
||||
src/track.cpp \
|
||||
@ -150,7 +148,6 @@ SOURCES += src/main.cpp \
|
||||
src/stylecombobox.cpp \
|
||||
src/emptymap.cpp \
|
||||
src/offlinemap.cpp \
|
||||
src/mapdir.cpp \
|
||||
src/matrix.cpp \
|
||||
src/tar.cpp \
|
||||
src/atlas.cpp \
|
||||
@ -160,7 +157,8 @@ SOURCES += src/main.cpp \
|
||||
src/lambertconic.cpp \
|
||||
src/ellipsoid.cpp \
|
||||
src/ozf.cpp \
|
||||
src/datum.cpp
|
||||
src/datum.cpp \
|
||||
src/maplist.cpp
|
||||
RESOURCES += gpxsee.qrc
|
||||
TRANSLATIONS = lang/gpxsee_cs.ts \
|
||||
lang/gpxsee_sv.ts \
|
||||
|
@ -190,351 +190,367 @@
|
||||
<context>
|
||||
<name>GUI</name>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="625"/>
|
||||
<location filename="../src/gui.cpp" line="653"/>
|
||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
||||
<translation>Program GPXSee je distribuován pod podmínkami licence GNU General Public License verze 3. Pro více informací navštivte stránky programu na adrese </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="703"/>
|
||||
<location filename="../src/gui.cpp" line="731"/>
|
||||
<source>Open file</source>
|
||||
<translation>Otevřít soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="793"/>
|
||||
<location filename="../src/gui.cpp" line="821"/>
|
||||
<source>Open POI file</source>
|
||||
<translation>Otevřít POI soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="284"/>
|
||||
<location filename="../src/gui.cpp" line="310"/>
|
||||
<source>Open</source>
|
||||
<translation>Otevřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="268"/>
|
||||
<location filename="../src/gui.cpp" line="294"/>
|
||||
<source>Quit</source>
|
||||
<translation>Ukončit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="276"/>
|
||||
<location filename="../src/gui.cpp" line="641"/>
|
||||
<location filename="../src/gui.cpp" line="642"/>
|
||||
<location filename="../src/gui.cpp" line="302"/>
|
||||
<location filename="../src/gui.cpp" line="669"/>
|
||||
<location filename="../src/gui.cpp" line="670"/>
|
||||
<source>Keyboard controls</source>
|
||||
<translation>Ovládací klávesy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="300"/>
|
||||
<location filename="../src/gui.cpp" line="326"/>
|
||||
<source>Close</source>
|
||||
<translation>Zavřít</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="306"/>
|
||||
<location filename="../src/gui.cpp" line="332"/>
|
||||
<source>Reload</source>
|
||||
<translation>Znovu načíst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="555"/>
|
||||
<location filename="../src/gui.cpp" line="583"/>
|
||||
<source>Show</source>
|
||||
<translation>Zobrazit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="473"/>
|
||||
<location filename="../src/gui.cpp" line="549"/>
|
||||
<location filename="../src/gui.cpp" line="500"/>
|
||||
<location filename="../src/gui.cpp" line="577"/>
|
||||
<source>File</source>
|
||||
<translation>Soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<source>FIT files (*.fit)</source>
|
||||
<translation>Soubory FIT (*.fit)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<source>IGC files (*.igc)</source>
|
||||
<translation>Soubory IGC (*.igc)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<source>NMEA files (*.nmea)</source>
|
||||
<translation>Soubory NMEA (*.nmea)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="274"/>
|
||||
<location filename="../src/gui.cpp" line="670"/>
|
||||
<location filename="../src/gui.cpp" line="671"/>
|
||||
<location filename="../src/gui.cpp" line="300"/>
|
||||
<location filename="../src/gui.cpp" line="698"/>
|
||||
<location filename="../src/gui.cpp" line="699"/>
|
||||
<source>Data sources</source>
|
||||
<translation>Zdroje dat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="314"/>
|
||||
<location filename="../src/gui.cpp" line="340"/>
|
||||
<source>Load POI file</source>
|
||||
<translation>Nahrát POI soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="317"/>
|
||||
<location filename="../src/gui.cpp" line="343"/>
|
||||
<source>Close POI files</source>
|
||||
<translation>Zavřit POI soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="319"/>
|
||||
<location filename="../src/gui.cpp" line="345"/>
|
||||
<source>Overlap POIs</source>
|
||||
<translation>Překrývat POI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="323"/>
|
||||
<location filename="../src/gui.cpp" line="349"/>
|
||||
<source>Show POI labels</source>
|
||||
<translation>Zobrazit názvy POI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="328"/>
|
||||
<location filename="../src/gui.cpp" line="354"/>
|
||||
<source>Show POIs</source>
|
||||
<translation>Zobrazit POI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="337"/>
|
||||
<location filename="../src/gui.cpp" line="363"/>
|
||||
<source>Show map</source>
|
||||
<translation>Zobrazit mapu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="344"/>
|
||||
<location filename="../src/gui.cpp" line="370"/>
|
||||
<location filename="../src/gui.cpp" line="1165"/>
|
||||
<source>Load map</source>
|
||||
<translation>Nahrát mapu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="373"/>
|
||||
<source>Clear tile cache</source>
|
||||
<translation>Vymazat mezipaměť dlaždic</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="353"/>
|
||||
<location filename="../src/gui.cpp" line="357"/>
|
||||
<location filename="../src/gui.cpp" line="653"/>
|
||||
<location filename="../src/gui.cpp" line="377"/>
|
||||
<location filename="../src/gui.cpp" line="381"/>
|
||||
<location filename="../src/gui.cpp" line="681"/>
|
||||
<source>Next map</source>
|
||||
<translation>Následující mapa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="364"/>
|
||||
<location filename="../src/gui.cpp" line="391"/>
|
||||
<source>Show tracks</source>
|
||||
<translation>Zobrazit cesty</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="368"/>
|
||||
<location filename="../src/gui.cpp" line="395"/>
|
||||
<source>Show routes</source>
|
||||
<translation>Zobrazit trasy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="372"/>
|
||||
<location filename="../src/gui.cpp" line="399"/>
|
||||
<source>Show waypoints</source>
|
||||
<translation>Zobrazit navigační body</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="376"/>
|
||||
<location filename="../src/gui.cpp" line="403"/>
|
||||
<source>Waypoint labels</source>
|
||||
<translation>Názvy navigačních bodů</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="387"/>
|
||||
<location filename="../src/gui.cpp" line="414"/>
|
||||
<source>Show graphs</source>
|
||||
<translation>Zobrazit grafy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="409"/>
|
||||
<location filename="../src/gui.cpp" line="436"/>
|
||||
<source>Show grid</source>
|
||||
<translation>Zobrazit mřížku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="415"/>
|
||||
<location filename="../src/gui.cpp" line="442"/>
|
||||
<source>Show toolbars</source>
|
||||
<translation>Zobrazovat nástrojové lišty</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="421"/>
|
||||
<location filename="../src/gui.cpp" line="448"/>
|
||||
<source>Total time</source>
|
||||
<translation>Celkový čas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="426"/>
|
||||
<location filename="../src/gui.cpp" line="946"/>
|
||||
<location filename="../src/gui.cpp" line="453"/>
|
||||
<location filename="../src/gui.cpp" line="974"/>
|
||||
<source>Moving time</source>
|
||||
<translation>Čistý čas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="433"/>
|
||||
<location filename="../src/gui.cpp" line="460"/>
|
||||
<source>Metric</source>
|
||||
<translation>Metrické</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="438"/>
|
||||
<location filename="../src/gui.cpp" line="465"/>
|
||||
<source>Imperial</source>
|
||||
<translation>Imperiální</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="444"/>
|
||||
<location filename="../src/gui.cpp" line="471"/>
|
||||
<source>Fullscreen mode</source>
|
||||
<translation>Celoobrazovkový režim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="450"/>
|
||||
<location filename="../src/gui.cpp" line="477"/>
|
||||
<source>Options...</source>
|
||||
<translation>Nastavení...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="455"/>
|
||||
<location filename="../src/gui.cpp" line="482"/>
|
||||
<source>Next</source>
|
||||
<translation>Následující</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="458"/>
|
||||
<location filename="../src/gui.cpp" line="485"/>
|
||||
<source>Previous</source>
|
||||
<translation>Předchozí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="462"/>
|
||||
<location filename="../src/gui.cpp" line="489"/>
|
||||
<source>Last</source>
|
||||
<translation>Poslední</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="465"/>
|
||||
<location filename="../src/gui.cpp" line="492"/>
|
||||
<source>First</source>
|
||||
<translation>První</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="487"/>
|
||||
<location filename="../src/gui.cpp" line="514"/>
|
||||
<source>Map</source>
|
||||
<translation>Mapa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="494"/>
|
||||
<location filename="../src/gui.cpp" line="522"/>
|
||||
<source>Graph</source>
|
||||
<translation>Graf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="502"/>
|
||||
<location filename="../src/gui.cpp" line="530"/>
|
||||
<source>POI</source>
|
||||
<translation>POI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="503"/>
|
||||
<location filename="../src/gui.cpp" line="531"/>
|
||||
<source>POI files</source>
|
||||
<translation>POI soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="514"/>
|
||||
<location filename="../src/gui.cpp" line="542"/>
|
||||
<source>Data</source>
|
||||
<translation>Data</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="515"/>
|
||||
<location filename="../src/gui.cpp" line="543"/>
|
||||
<source>Display</source>
|
||||
<translation>Zobrazit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="523"/>
|
||||
<location filename="../src/gui.cpp" line="551"/>
|
||||
<source>Settings</source>
|
||||
<translation>Nastavení</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="527"/>
|
||||
<location filename="../src/gui.cpp" line="555"/>
|
||||
<source>Units</source>
|
||||
<translation>Jednotky</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="536"/>
|
||||
<location filename="../src/gui.cpp" line="564"/>
|
||||
<source>Help</source>
|
||||
<translation>Nápověda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="651"/>
|
||||
<location filename="../src/gui.cpp" line="679"/>
|
||||
<source>Append file</source>
|
||||
<translation>Přidat soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="652"/>
|
||||
<location filename="../src/gui.cpp" line="680"/>
|
||||
<source>Next/Previous</source>
|
||||
<translation>Následující/Předchozí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="655"/>
|
||||
<location filename="../src/gui.cpp" line="683"/>
|
||||
<source>Previous map</source>
|
||||
<translation>Předchozí mapa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="656"/>
|
||||
<location filename="../src/gui.cpp" line="684"/>
|
||||
<source>Zoom in</source>
|
||||
<translation>Přiblížit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="658"/>
|
||||
<location filename="../src/gui.cpp" line="686"/>
|
||||
<source>Zoom out</source>
|
||||
<translation>Oddálit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="660"/>
|
||||
<location filename="../src/gui.cpp" line="688"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Digitální zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="661"/>
|
||||
<location filename="../src/gui.cpp" line="689"/>
|
||||
<source>Zoom</source>
|
||||
<translation>Zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="673"/>
|
||||
<location filename="../src/gui.cpp" line="701"/>
|
||||
<source>Online maps</source>
|
||||
<translation>Online mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="674"/>
|
||||
<location filename="../src/gui.cpp" line="702"/>
|
||||
<source>Online map URLs are read on program startup from the following file:</source>
|
||||
<translation>URL online map jsou načteny při startu programu z následujícího souboru:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="685"/>
|
||||
<location filename="../src/gui.cpp" line="713"/>
|
||||
<source>Offline maps are loaded on program startup from the following directory:</source>
|
||||
<translation>Offline mapy jsou načítány při startu aplikace z následujícího adresáře:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="688"/>
|
||||
<location filename="../src/gui.cpp" line="716"/>
|
||||
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer image-based maps and tiled TrekBuddy maps/atlases (tared and non-tared).</source>
|
||||
<translation>Očekávaná struktura je jedna mapa/atlas v samostatném podadresáři. Podporované mapové formáty jsou OziExplorer mapy a TrekBuddy mapy/atlasy (včetně tar varianty).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1144"/>
|
||||
<location filename="../src/gui.cpp" line="1198"/>
|
||||
<source>No files loaded</source>
|
||||
<translation>Nejsou načteny žádné soubory</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<source>GPX files (*.gpx)</source>
|
||||
<translation>Soubory GPX (*.gpx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="111"/>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<source>TCX files (*.tcx)</source>
|
||||
<translation>Soubory TCX (*.tcx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<source>KML files (*.kml)</source>
|
||||
<translation>Soubory KML (*.kml)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<source>CSV files (*.csv)</source>
|
||||
<translation>Soubory CSV (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="111"/>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<source>All files (*)</source>
|
||||
<translation>Všechny soubory (*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="932"/>
|
||||
<location filename="../src/gui.cpp" line="935"/>
|
||||
<location filename="../src/gui.cpp" line="960"/>
|
||||
<location filename="../src/gui.cpp" line="963"/>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="924"/>
|
||||
<location filename="../src/gui.cpp" line="952"/>
|
||||
<source>Routes</source>
|
||||
<translation>Trasy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1166"/>
|
||||
<source>Map files (*.map *.tba *.tar)</source>
|
||||
<translation>Mapové soubory (*.map *.tba *.tar)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1183"/>
|
||||
<source>Error loading map:</source>
|
||||
<translation>Mapu nelze načíst:</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui.cpp" line="1148"/>
|
||||
<location filename="../src/gui.cpp" line="1202"/>
|
||||
<source>%n files</source>
|
||||
<translation>
|
||||
<numerusform>%n soubor</numerusform>
|
||||
@ -543,122 +559,122 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="645"/>
|
||||
<location filename="../src/gui.cpp" line="673"/>
|
||||
<source>Next file</source>
|
||||
<translation>Následující soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="622"/>
|
||||
<location filename="../src/gui.cpp" line="650"/>
|
||||
<source>Version </source>
|
||||
<translation>Verze </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="289"/>
|
||||
<location filename="../src/gui.cpp" line="315"/>
|
||||
<source>Print...</source>
|
||||
<translation>Tisknout...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="294"/>
|
||||
<location filename="../src/gui.cpp" line="320"/>
|
||||
<source>Export to PDF...</source>
|
||||
<translation>Exportovat do PDF...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="926"/>
|
||||
<location filename="../src/gui.cpp" line="954"/>
|
||||
<source>Waypoints</source>
|
||||
<translation>Navigační body</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="646"/>
|
||||
<location filename="../src/gui.cpp" line="674"/>
|
||||
<source>Previous file</source>
|
||||
<translation>Předchozí soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<location filename="../src/gui.cpp" line="106"/>
|
||||
<source>Supported files (*.csv *.fit *.gpx *.igc *.kml *.nmea *.tcx)</source>
|
||||
<translation>Podporované soubory (*.csv *.fit *.gpx *.igc *.kml *.nmea *.tcx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="380"/>
|
||||
<location filename="../src/gui.cpp" line="407"/>
|
||||
<source>Route waypoints</source>
|
||||
<translation>Body tras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="648"/>
|
||||
<location filename="../src/gui.cpp" line="676"/>
|
||||
<source>First file</source>
|
||||
<translation>První soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="650"/>
|
||||
<location filename="../src/gui.cpp" line="678"/>
|
||||
<source>Last file</source>
|
||||
<translation>Poslední soubor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="677"/>
|
||||
<location filename="../src/gui.cpp" line="705"/>
|
||||
<source>The file format is one map entry per line, consisting of the map name and tiles URL delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
||||
<translation>Formát souboru je jeden mapový záznam na řádku, kde mapový záznam sestává ze jména mapy a URL dlaždic navzájem oddělených tabulátorem. Souřadnice dlaždice jsou v URL nahrazeny řetězci $x a $y, úroven přiblížení (zoom) pak řetězcem $z. Příklad:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="684"/>
|
||||
<location filename="../src/gui.cpp" line="712"/>
|
||||
<source>Offline maps</source>
|
||||
<translation>Offline mapy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="693"/>
|
||||
<location filename="../src/gui.cpp" line="721"/>
|
||||
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
||||
<translation>POI soubory, které se mají automaticky nahrát při startu programu jsou načítány z následujícího adresáře:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="782"/>
|
||||
<location filename="../src/gui.cpp" line="810"/>
|
||||
<source>Error loading data file:</source>
|
||||
<translation>Datový soubor nelze načíst:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="785"/>
|
||||
<location filename="../src/gui.cpp" line="810"/>
|
||||
<location filename="../src/gui.cpp" line="813"/>
|
||||
<location filename="../src/gui.cpp" line="838"/>
|
||||
<source>Line: %1</source>
|
||||
<translation>Řádka: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="807"/>
|
||||
<location filename="../src/gui.cpp" line="835"/>
|
||||
<source>Error loading POI file:</source>
|
||||
<translation>Soubor POI nelze načíst:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="918"/>
|
||||
<location filename="../src/gui.cpp" line="946"/>
|
||||
<source>Name</source>
|
||||
<translation>Název</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="922"/>
|
||||
<location filename="../src/gui.cpp" line="950"/>
|
||||
<source>Tracks</source>
|
||||
<translation>Cesty</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="279"/>
|
||||
<location filename="../src/gui.cpp" line="621"/>
|
||||
<location filename="../src/gui.cpp" line="305"/>
|
||||
<location filename="../src/gui.cpp" line="649"/>
|
||||
<source>About GPXSee</source>
|
||||
<translation>O aplikaci GPXSee</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="560"/>
|
||||
<location filename="../src/gui.cpp" line="588"/>
|
||||
<source>Navigation</source>
|
||||
<translation>Navigace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="692"/>
|
||||
<location filename="../src/gui.cpp" line="720"/>
|
||||
<source>POIs</source>
|
||||
<translation>POI body</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="395"/>
|
||||
<location filename="../src/gui.cpp" line="942"/>
|
||||
<location filename="../src/gui.cpp" line="422"/>
|
||||
<location filename="../src/gui.cpp" line="970"/>
|
||||
<source>Distance</source>
|
||||
<translation>Vzdálenost</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="402"/>
|
||||
<location filename="../src/gui.cpp" line="524"/>
|
||||
<location filename="../src/gui.cpp" line="944"/>
|
||||
<location filename="../src/gui.cpp" line="429"/>
|
||||
<location filename="../src/gui.cpp" line="552"/>
|
||||
<location filename="../src/gui.cpp" line="972"/>
|
||||
<source>Time</source>
|
||||
<translation>Čas</translation>
|
||||
</message>
|
||||
|
@ -190,320 +190,336 @@
|
||||
<context>
|
||||
<name>GUI</name>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="625"/>
|
||||
<location filename="../src/gui.cpp" line="653"/>
|
||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
||||
<translation>GPXSee wird unter der GNU General Public License version 3 vertrieben. Mehr Informationen zu GPXSee auf der Homepage </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="703"/>
|
||||
<location filename="../src/gui.cpp" line="731"/>
|
||||
<source>Open file</source>
|
||||
<translation>Datei öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="793"/>
|
||||
<location filename="../src/gui.cpp" line="821"/>
|
||||
<source>Open POI file</source>
|
||||
<translation>POI Datei öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="284"/>
|
||||
<location filename="../src/gui.cpp" line="310"/>
|
||||
<source>Open</source>
|
||||
<translation>Öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="268"/>
|
||||
<location filename="../src/gui.cpp" line="294"/>
|
||||
<source>Quit</source>
|
||||
<translation>Beenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="276"/>
|
||||
<location filename="../src/gui.cpp" line="641"/>
|
||||
<location filename="../src/gui.cpp" line="642"/>
|
||||
<location filename="../src/gui.cpp" line="302"/>
|
||||
<location filename="../src/gui.cpp" line="669"/>
|
||||
<location filename="../src/gui.cpp" line="670"/>
|
||||
<source>Keyboard controls</source>
|
||||
<translation>Tastaturkürzel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="300"/>
|
||||
<location filename="../src/gui.cpp" line="326"/>
|
||||
<source>Close</source>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="306"/>
|
||||
<location filename="../src/gui.cpp" line="332"/>
|
||||
<source>Reload</source>
|
||||
<translation>Neu Laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="555"/>
|
||||
<location filename="../src/gui.cpp" line="583"/>
|
||||
<source>Show</source>
|
||||
<translation>Ansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="473"/>
|
||||
<location filename="../src/gui.cpp" line="549"/>
|
||||
<location filename="../src/gui.cpp" line="500"/>
|
||||
<location filename="../src/gui.cpp" line="577"/>
|
||||
<source>File</source>
|
||||
<translation>Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<source>FIT files (*.fit)</source>
|
||||
<translation>FIT-Dateien (*.fit)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<source>IGC files (*.igc)</source>
|
||||
<translation>IGC-Dateien (*.igc)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<source>NMEA files (*.nmea)</source>
|
||||
<translation>NMEA-Dateien (*.nmea)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="274"/>
|
||||
<location filename="../src/gui.cpp" line="670"/>
|
||||
<location filename="../src/gui.cpp" line="671"/>
|
||||
<location filename="../src/gui.cpp" line="300"/>
|
||||
<location filename="../src/gui.cpp" line="698"/>
|
||||
<location filename="../src/gui.cpp" line="699"/>
|
||||
<source>Data sources</source>
|
||||
<translation>Datenquellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="314"/>
|
||||
<location filename="../src/gui.cpp" line="340"/>
|
||||
<source>Load POI file</source>
|
||||
<translation>POI-Datei laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="317"/>
|
||||
<location filename="../src/gui.cpp" line="343"/>
|
||||
<source>Close POI files</source>
|
||||
<translation>POI-Datei schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="319"/>
|
||||
<location filename="../src/gui.cpp" line="345"/>
|
||||
<source>Overlap POIs</source>
|
||||
<translation>POI überlappen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="323"/>
|
||||
<location filename="../src/gui.cpp" line="349"/>
|
||||
<source>Show POI labels</source>
|
||||
<translation>POI-Labels anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="328"/>
|
||||
<location filename="../src/gui.cpp" line="354"/>
|
||||
<source>Show POIs</source>
|
||||
<translation>POIs anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="337"/>
|
||||
<location filename="../src/gui.cpp" line="363"/>
|
||||
<source>Show map</source>
|
||||
<translation>Karte anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="344"/>
|
||||
<location filename="../src/gui.cpp" line="370"/>
|
||||
<location filename="../src/gui.cpp" line="1165"/>
|
||||
<source>Load map</source>
|
||||
<translation>Karte laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="373"/>
|
||||
<source>Clear tile cache</source>
|
||||
<translation>Tile-Cache bereinigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="353"/>
|
||||
<location filename="../src/gui.cpp" line="357"/>
|
||||
<location filename="../src/gui.cpp" line="653"/>
|
||||
<location filename="../src/gui.cpp" line="377"/>
|
||||
<location filename="../src/gui.cpp" line="381"/>
|
||||
<location filename="../src/gui.cpp" line="681"/>
|
||||
<source>Next map</source>
|
||||
<translation>Nächste Karte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="364"/>
|
||||
<location filename="../src/gui.cpp" line="391"/>
|
||||
<source>Show tracks</source>
|
||||
<translation>Strecken anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="368"/>
|
||||
<location filename="../src/gui.cpp" line="395"/>
|
||||
<source>Show routes</source>
|
||||
<translation>Routen anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="372"/>
|
||||
<location filename="../src/gui.cpp" line="399"/>
|
||||
<source>Show waypoints</source>
|
||||
<translation>Wegpunkte anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="376"/>
|
||||
<location filename="../src/gui.cpp" line="403"/>
|
||||
<source>Waypoint labels</source>
|
||||
<translation>Wegpunkt Labels</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="387"/>
|
||||
<location filename="../src/gui.cpp" line="414"/>
|
||||
<source>Show graphs</source>
|
||||
<translation>Graphen anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="409"/>
|
||||
<location filename="../src/gui.cpp" line="436"/>
|
||||
<source>Show grid</source>
|
||||
<translation>Gitter anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="415"/>
|
||||
<location filename="../src/gui.cpp" line="442"/>
|
||||
<source>Show toolbars</source>
|
||||
<translation>Toolbars anzeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="421"/>
|
||||
<location filename="../src/gui.cpp" line="448"/>
|
||||
<source>Total time</source>
|
||||
<translation>Gesamtzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="426"/>
|
||||
<location filename="../src/gui.cpp" line="946"/>
|
||||
<location filename="../src/gui.cpp" line="453"/>
|
||||
<location filename="../src/gui.cpp" line="974"/>
|
||||
<source>Moving time</source>
|
||||
<translation>Bewegungszeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="433"/>
|
||||
<location filename="../src/gui.cpp" line="460"/>
|
||||
<source>Metric</source>
|
||||
<translation>Metrisch</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="438"/>
|
||||
<location filename="../src/gui.cpp" line="465"/>
|
||||
<source>Imperial</source>
|
||||
<translation>Imperial</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="444"/>
|
||||
<location filename="../src/gui.cpp" line="471"/>
|
||||
<source>Fullscreen mode</source>
|
||||
<translation>Vollbildmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="450"/>
|
||||
<location filename="../src/gui.cpp" line="477"/>
|
||||
<source>Options...</source>
|
||||
<translation>Einstellungen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="455"/>
|
||||
<location filename="../src/gui.cpp" line="482"/>
|
||||
<source>Next</source>
|
||||
<translation>Nächste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="458"/>
|
||||
<location filename="../src/gui.cpp" line="485"/>
|
||||
<source>Previous</source>
|
||||
<translation>Vorherige</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="462"/>
|
||||
<location filename="../src/gui.cpp" line="489"/>
|
||||
<source>Last</source>
|
||||
<translation>Letzte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="465"/>
|
||||
<location filename="../src/gui.cpp" line="492"/>
|
||||
<source>First</source>
|
||||
<translation>Erste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="487"/>
|
||||
<location filename="../src/gui.cpp" line="514"/>
|
||||
<source>Map</source>
|
||||
<translation>Karte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="494"/>
|
||||
<location filename="../src/gui.cpp" line="522"/>
|
||||
<source>Graph</source>
|
||||
<translation>Graph</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="502"/>
|
||||
<location filename="../src/gui.cpp" line="530"/>
|
||||
<source>POI</source>
|
||||
<translation>POI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="503"/>
|
||||
<location filename="../src/gui.cpp" line="531"/>
|
||||
<source>POI files</source>
|
||||
<translation>POI-Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="514"/>
|
||||
<location filename="../src/gui.cpp" line="542"/>
|
||||
<source>Data</source>
|
||||
<translation>Daten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="515"/>
|
||||
<location filename="../src/gui.cpp" line="543"/>
|
||||
<source>Display</source>
|
||||
<translation>Anzeige</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="523"/>
|
||||
<location filename="../src/gui.cpp" line="551"/>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="527"/>
|
||||
<location filename="../src/gui.cpp" line="555"/>
|
||||
<source>Units</source>
|
||||
<translation>Einheiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="536"/>
|
||||
<location filename="../src/gui.cpp" line="564"/>
|
||||
<source>Help</source>
|
||||
<translation>Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="651"/>
|
||||
<location filename="../src/gui.cpp" line="679"/>
|
||||
<source>Append file</source>
|
||||
<translation>An Datei anhängen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="652"/>
|
||||
<location filename="../src/gui.cpp" line="680"/>
|
||||
<source>Next/Previous</source>
|
||||
<translation>Nächste/Vorherige</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="655"/>
|
||||
<location filename="../src/gui.cpp" line="683"/>
|
||||
<source>Previous map</source>
|
||||
<translation>Vorherige Karte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="656"/>
|
||||
<location filename="../src/gui.cpp" line="684"/>
|
||||
<source>Zoom in</source>
|
||||
<translation>Hineinzoomen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="658"/>
|
||||
<location filename="../src/gui.cpp" line="686"/>
|
||||
<source>Zoom out</source>
|
||||
<translation>Herauszoomen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="660"/>
|
||||
<location filename="../src/gui.cpp" line="688"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Digitaler Zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="661"/>
|
||||
<location filename="../src/gui.cpp" line="689"/>
|
||||
<source>Zoom</source>
|
||||
<translation>Zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="673"/>
|
||||
<location filename="../src/gui.cpp" line="701"/>
|
||||
<source>Online maps</source>
|
||||
<translation>Onlinekarten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="674"/>
|
||||
<location filename="../src/gui.cpp" line="702"/>
|
||||
<source>Online map URLs are read on program startup from the following file:</source>
|
||||
<translation>Onlinekarten URLs werden zu Programmstart aus der folgenden Datei gelesen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="684"/>
|
||||
<location filename="../src/gui.cpp" line="712"/>
|
||||
<source>Offline maps</source>
|
||||
<translation>Offlinekarten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="685"/>
|
||||
<location filename="../src/gui.cpp" line="713"/>
|
||||
<source>Offline maps are loaded on program startup from the following directory:</source>
|
||||
<translation>Offlinekarten werden zu Programmstart aus dem folgenden Verzeichnis geladen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="688"/>
|
||||
<location filename="../src/gui.cpp" line="716"/>
|
||||
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer image-based maps and tiled TrekBuddy maps/atlases (tared and non-tared).</source>
|
||||
<translation>Die erwartete Struktur ist eine Karte/ein Atlas pro Unterverzeichnis. Unterstützte Kartenformate sind bildbasierte OziExplorer Karten und tile-basierte TrekBuddy Karten/Atlanten (mit oder ohne tar Kompression).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1144"/>
|
||||
<location filename="../src/gui.cpp" line="1166"/>
|
||||
<source>Map files (*.map *.tba *.tar)</source>
|
||||
<translation>Karten-Dateien (*.map *.tba *.tar)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1183"/>
|
||||
<source>Error loading map:</source>
|
||||
<translation>Fehler beim Laden der Karte-Datei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1198"/>
|
||||
<source>No files loaded</source>
|
||||
<translation>Keine Dateien geladen</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui.cpp" line="1148"/>
|
||||
<location filename="../src/gui.cpp" line="1202"/>
|
||||
<source>%n files</source>
|
||||
<translation>
|
||||
<numerusform>%n Datei</numerusform>
|
||||
@ -511,153 +527,153 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<source>GPX files (*.gpx)</source>
|
||||
<translation>GPX-Dateien (*.gpx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="111"/>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<source>TCX files (*.tcx)</source>
|
||||
<translation>TCX-Dateien (*.tcx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<source>KML files (*.kml)</source>
|
||||
<translation>KML-Dateien (*.kml)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<source>CSV files (*.csv)</source>
|
||||
<translation>CSV-Dateien (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="111"/>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<source>All files (*)</source>
|
||||
<translation>Alle Dateien (*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="932"/>
|
||||
<location filename="../src/gui.cpp" line="935"/>
|
||||
<location filename="../src/gui.cpp" line="960"/>
|
||||
<location filename="../src/gui.cpp" line="963"/>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="924"/>
|
||||
<location filename="../src/gui.cpp" line="952"/>
|
||||
<source>Routes</source>
|
||||
<translation>Routen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="645"/>
|
||||
<location filename="../src/gui.cpp" line="673"/>
|
||||
<source>Next file</source>
|
||||
<translation>Nächste Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="622"/>
|
||||
<location filename="../src/gui.cpp" line="650"/>
|
||||
<source>Version </source>
|
||||
<translation>Version </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="289"/>
|
||||
<location filename="../src/gui.cpp" line="315"/>
|
||||
<source>Print...</source>
|
||||
<translation>Drucken...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="294"/>
|
||||
<location filename="../src/gui.cpp" line="320"/>
|
||||
<source>Export to PDF...</source>
|
||||
<translation>Als PDF exportieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="926"/>
|
||||
<location filename="../src/gui.cpp" line="954"/>
|
||||
<source>Waypoints</source>
|
||||
<translation>Wegpunkte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="646"/>
|
||||
<location filename="../src/gui.cpp" line="674"/>
|
||||
<source>Previous file</source>
|
||||
<translation>Vorherige Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<location filename="../src/gui.cpp" line="106"/>
|
||||
<source>Supported files (*.csv *.fit *.gpx *.igc *.kml *.nmea *.tcx)</source>
|
||||
<translation>Unterstütze Dateien (*.csv *.fit *.gpx *.igc *.kml *.nmea *.tcx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="380"/>
|
||||
<location filename="../src/gui.cpp" line="407"/>
|
||||
<source>Route waypoints</source>
|
||||
<translation>Routen Wegpunkte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="648"/>
|
||||
<location filename="../src/gui.cpp" line="676"/>
|
||||
<source>First file</source>
|
||||
<translation>Erste Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="650"/>
|
||||
<location filename="../src/gui.cpp" line="678"/>
|
||||
<source>Last file</source>
|
||||
<translation>Letzte Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="677"/>
|
||||
<location filename="../src/gui.cpp" line="705"/>
|
||||
<source>The file format is one map entry per line, consisting of the map name and tiles URL delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
||||
<translation>Das Dateiformat ist eine Karte pro Linie. Jede Linie besteht aus dem Kartenname und die durch ein TAB Zeichen getrennte Tiles URL. X und Y Koordinate einer Tile werden in der URL durch $x und $y ersetzt und das Zoomlevel durch $z. Ein Beispiel einer Kartendatei könnte so aussehen:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="693"/>
|
||||
<location filename="../src/gui.cpp" line="721"/>
|
||||
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
||||
<translation>Damit GPXSee zu Programmstart automatisch eine POI-Datei lädt, fügen Sie diese zu folgendem Verzeichnis hinzu:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="782"/>
|
||||
<location filename="../src/gui.cpp" line="810"/>
|
||||
<source>Error loading data file:</source>
|
||||
<translation>Fehler beim Laden der Datei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="785"/>
|
||||
<location filename="../src/gui.cpp" line="810"/>
|
||||
<location filename="../src/gui.cpp" line="813"/>
|
||||
<location filename="../src/gui.cpp" line="838"/>
|
||||
<source>Line: %1</source>
|
||||
<translation>Linie: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="807"/>
|
||||
<location filename="../src/gui.cpp" line="835"/>
|
||||
<source>Error loading POI file:</source>
|
||||
<translation>Fehler beim Laden der POI-Datei:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="918"/>
|
||||
<location filename="../src/gui.cpp" line="946"/>
|
||||
<source>Name</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="922"/>
|
||||
<location filename="../src/gui.cpp" line="950"/>
|
||||
<source>Tracks</source>
|
||||
<translation>Strecken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="279"/>
|
||||
<location filename="../src/gui.cpp" line="621"/>
|
||||
<location filename="../src/gui.cpp" line="305"/>
|
||||
<location filename="../src/gui.cpp" line="649"/>
|
||||
<source>About GPXSee</source>
|
||||
<translation>Über GPXSee</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="560"/>
|
||||
<location filename="../src/gui.cpp" line="588"/>
|
||||
<source>Navigation</source>
|
||||
<translation>Navigation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="692"/>
|
||||
<location filename="../src/gui.cpp" line="720"/>
|
||||
<source>POIs</source>
|
||||
<translation>POIs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="395"/>
|
||||
<location filename="../src/gui.cpp" line="942"/>
|
||||
<location filename="../src/gui.cpp" line="422"/>
|
||||
<location filename="../src/gui.cpp" line="970"/>
|
||||
<source>Distance</source>
|
||||
<translation>Distanz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="402"/>
|
||||
<location filename="../src/gui.cpp" line="524"/>
|
||||
<location filename="../src/gui.cpp" line="944"/>
|
||||
<location filename="../src/gui.cpp" line="429"/>
|
||||
<location filename="../src/gui.cpp" line="552"/>
|
||||
<location filename="../src/gui.cpp" line="972"/>
|
||||
<source>Time</source>
|
||||
<translation>Zeit</translation>
|
||||
</message>
|
||||
|
@ -190,320 +190,336 @@
|
||||
<context>
|
||||
<name>GUI</name>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="625"/>
|
||||
<location filename="../src/gui.cpp" line="653"/>
|
||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
||||
<translation>GPXSee distribueras under vilkoren för GNU General Public License version 3. För mer info om GPXSee, besök hemsidan på </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="703"/>
|
||||
<location filename="../src/gui.cpp" line="731"/>
|
||||
<source>Open file</source>
|
||||
<translation>Öppna fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="793"/>
|
||||
<location filename="../src/gui.cpp" line="821"/>
|
||||
<source>Open POI file</source>
|
||||
<translation>Öppna POI-fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="284"/>
|
||||
<location filename="../src/gui.cpp" line="310"/>
|
||||
<source>Open</source>
|
||||
<translation>Öppna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="268"/>
|
||||
<location filename="../src/gui.cpp" line="294"/>
|
||||
<source>Quit</source>
|
||||
<translation>Avsluta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="276"/>
|
||||
<location filename="../src/gui.cpp" line="641"/>
|
||||
<location filename="../src/gui.cpp" line="642"/>
|
||||
<location filename="../src/gui.cpp" line="302"/>
|
||||
<location filename="../src/gui.cpp" line="669"/>
|
||||
<location filename="../src/gui.cpp" line="670"/>
|
||||
<source>Keyboard controls</source>
|
||||
<translation>Snabbtangenter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="300"/>
|
||||
<location filename="../src/gui.cpp" line="326"/>
|
||||
<source>Close</source>
|
||||
<translation>Stäng</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="306"/>
|
||||
<location filename="../src/gui.cpp" line="332"/>
|
||||
<source>Reload</source>
|
||||
<translation>Uppdatera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="555"/>
|
||||
<location filename="../src/gui.cpp" line="583"/>
|
||||
<source>Show</source>
|
||||
<translation>Visa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="473"/>
|
||||
<location filename="../src/gui.cpp" line="549"/>
|
||||
<location filename="../src/gui.cpp" line="500"/>
|
||||
<location filename="../src/gui.cpp" line="577"/>
|
||||
<source>File</source>
|
||||
<translation>Arkiv</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<source>FIT files (*.fit)</source>
|
||||
<translation>FIT-filer (*.fit)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<source>IGC files (*.igc)</source>
|
||||
<translation>IGC-filer (*.igc)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<source>NMEA files (*.nmea)</source>
|
||||
<translation>NMEA-filer (*.nmea)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="274"/>
|
||||
<location filename="../src/gui.cpp" line="670"/>
|
||||
<location filename="../src/gui.cpp" line="671"/>
|
||||
<location filename="../src/gui.cpp" line="300"/>
|
||||
<location filename="../src/gui.cpp" line="698"/>
|
||||
<location filename="../src/gui.cpp" line="699"/>
|
||||
<source>Data sources</source>
|
||||
<translation>Datakällor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="314"/>
|
||||
<location filename="../src/gui.cpp" line="340"/>
|
||||
<source>Load POI file</source>
|
||||
<translation>Läs in POI-fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="317"/>
|
||||
<location filename="../src/gui.cpp" line="343"/>
|
||||
<source>Close POI files</source>
|
||||
<translation>Stäng POI-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="319"/>
|
||||
<location filename="../src/gui.cpp" line="345"/>
|
||||
<source>Overlap POIs</source>
|
||||
<translation>Överlappa POI:er</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="323"/>
|
||||
<location filename="../src/gui.cpp" line="349"/>
|
||||
<source>Show POI labels</source>
|
||||
<translation>Visa POI-namn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="328"/>
|
||||
<location filename="../src/gui.cpp" line="354"/>
|
||||
<source>Show POIs</source>
|
||||
<translation>Visa POI:er</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="337"/>
|
||||
<location filename="../src/gui.cpp" line="363"/>
|
||||
<source>Show map</source>
|
||||
<translation>Visa karta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="344"/>
|
||||
<location filename="../src/gui.cpp" line="370"/>
|
||||
<location filename="../src/gui.cpp" line="1165"/>
|
||||
<source>Load map</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="373"/>
|
||||
<source>Clear tile cache</source>
|
||||
<translation>Rensa kart-cache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="353"/>
|
||||
<location filename="../src/gui.cpp" line="357"/>
|
||||
<location filename="../src/gui.cpp" line="653"/>
|
||||
<location filename="../src/gui.cpp" line="377"/>
|
||||
<location filename="../src/gui.cpp" line="381"/>
|
||||
<location filename="../src/gui.cpp" line="681"/>
|
||||
<source>Next map</source>
|
||||
<translation>Nästa karta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="364"/>
|
||||
<location filename="../src/gui.cpp" line="391"/>
|
||||
<source>Show tracks</source>
|
||||
<translation>Visa spår</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="368"/>
|
||||
<location filename="../src/gui.cpp" line="395"/>
|
||||
<source>Show routes</source>
|
||||
<translation>Visa rutter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="372"/>
|
||||
<location filename="../src/gui.cpp" line="399"/>
|
||||
<source>Show waypoints</source>
|
||||
<translation>Visa vägpunkter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="376"/>
|
||||
<location filename="../src/gui.cpp" line="403"/>
|
||||
<source>Waypoint labels</source>
|
||||
<translation>Vägpunktsnamn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="387"/>
|
||||
<location filename="../src/gui.cpp" line="414"/>
|
||||
<source>Show graphs</source>
|
||||
<translation>Visa diagram</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="409"/>
|
||||
<location filename="../src/gui.cpp" line="436"/>
|
||||
<source>Show grid</source>
|
||||
<translation>Visa stödlinjer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="415"/>
|
||||
<location filename="../src/gui.cpp" line="442"/>
|
||||
<source>Show toolbars</source>
|
||||
<translation>Visa verktygsfält</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="421"/>
|
||||
<location filename="../src/gui.cpp" line="448"/>
|
||||
<source>Total time</source>
|
||||
<translation>Total tid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="426"/>
|
||||
<location filename="../src/gui.cpp" line="946"/>
|
||||
<location filename="../src/gui.cpp" line="453"/>
|
||||
<location filename="../src/gui.cpp" line="974"/>
|
||||
<source>Moving time</source>
|
||||
<translation>Förflyttningstid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="433"/>
|
||||
<location filename="../src/gui.cpp" line="460"/>
|
||||
<source>Metric</source>
|
||||
<translation>Meter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="438"/>
|
||||
<location filename="../src/gui.cpp" line="465"/>
|
||||
<source>Imperial</source>
|
||||
<translation>Imperial</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="444"/>
|
||||
<location filename="../src/gui.cpp" line="471"/>
|
||||
<source>Fullscreen mode</source>
|
||||
<translation>Helskärmsläge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="450"/>
|
||||
<location filename="../src/gui.cpp" line="477"/>
|
||||
<source>Options...</source>
|
||||
<translation>Alternativ...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="455"/>
|
||||
<location filename="../src/gui.cpp" line="482"/>
|
||||
<source>Next</source>
|
||||
<translation>Nästa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="458"/>
|
||||
<location filename="../src/gui.cpp" line="485"/>
|
||||
<source>Previous</source>
|
||||
<translation>Föregående</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="462"/>
|
||||
<location filename="../src/gui.cpp" line="489"/>
|
||||
<source>Last</source>
|
||||
<translation>Sista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="465"/>
|
||||
<location filename="../src/gui.cpp" line="492"/>
|
||||
<source>First</source>
|
||||
<translation>Första</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="487"/>
|
||||
<location filename="../src/gui.cpp" line="514"/>
|
||||
<source>Map</source>
|
||||
<translation>Karta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="494"/>
|
||||
<location filename="../src/gui.cpp" line="522"/>
|
||||
<source>Graph</source>
|
||||
<translation>Diagram</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="502"/>
|
||||
<location filename="../src/gui.cpp" line="530"/>
|
||||
<source>POI</source>
|
||||
<translation>POI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="503"/>
|
||||
<location filename="../src/gui.cpp" line="531"/>
|
||||
<source>POI files</source>
|
||||
<translation>POI-filer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="514"/>
|
||||
<location filename="../src/gui.cpp" line="542"/>
|
||||
<source>Data</source>
|
||||
<translation>Data</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="515"/>
|
||||
<location filename="../src/gui.cpp" line="543"/>
|
||||
<source>Display</source>
|
||||
<translation>Visa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="523"/>
|
||||
<location filename="../src/gui.cpp" line="551"/>
|
||||
<source>Settings</source>
|
||||
<translation>Inställningar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="527"/>
|
||||
<location filename="../src/gui.cpp" line="555"/>
|
||||
<source>Units</source>
|
||||
<translation>Enhet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="536"/>
|
||||
<location filename="../src/gui.cpp" line="564"/>
|
||||
<source>Help</source>
|
||||
<translation>Hjälp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="651"/>
|
||||
<location filename="../src/gui.cpp" line="679"/>
|
||||
<source>Append file</source>
|
||||
<translation>Lägg till fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="652"/>
|
||||
<location filename="../src/gui.cpp" line="680"/>
|
||||
<source>Next/Previous</source>
|
||||
<translation>Nästa/Föregående</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="655"/>
|
||||
<location filename="../src/gui.cpp" line="683"/>
|
||||
<source>Previous map</source>
|
||||
<translation>Föregående karta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="656"/>
|
||||
<location filename="../src/gui.cpp" line="684"/>
|
||||
<source>Zoom in</source>
|
||||
<translation>Zooma in</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="658"/>
|
||||
<location filename="../src/gui.cpp" line="686"/>
|
||||
<source>Zoom out</source>
|
||||
<translation>Zooma ut</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="660"/>
|
||||
<location filename="../src/gui.cpp" line="688"/>
|
||||
<source>Digital zoom</source>
|
||||
<translation>Digital zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="661"/>
|
||||
<location filename="../src/gui.cpp" line="689"/>
|
||||
<source>Zoom</source>
|
||||
<translation>Zoom</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="673"/>
|
||||
<location filename="../src/gui.cpp" line="701"/>
|
||||
<source>Online maps</source>
|
||||
<translation>Online-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="674"/>
|
||||
<location filename="../src/gui.cpp" line="702"/>
|
||||
<source>Online map URLs are read on program startup from the following file:</source>
|
||||
<translation>Online-kartors URL:er, läses från följande fil vid programstart:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="684"/>
|
||||
<location filename="../src/gui.cpp" line="712"/>
|
||||
<source>Offline maps</source>
|
||||
<translation>Offline-kartor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="685"/>
|
||||
<location filename="../src/gui.cpp" line="713"/>
|
||||
<source>Offline maps are loaded on program startup from the following directory:</source>
|
||||
<translation>Offline-kartor läses in från följande mapp vid programstart:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="688"/>
|
||||
<location filename="../src/gui.cpp" line="716"/>
|
||||
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer image-based maps and tiled TrekBuddy maps/atlases (tared and non-tared).</source>
|
||||
<translation>Den förväntade strukturen är en karta/atlas i en separat undermapp. Kartformat som stöds är OziExplorer bildbaserade kartor och rutindelade TrekBuddy-kartor/-kartsamlingar (tarerade och icke tarerade).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1144"/>
|
||||
<location filename="../src/gui.cpp" line="1166"/>
|
||||
<source>Map files (*.map *.tba *.tar)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1183"/>
|
||||
<source>Error loading map:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="1198"/>
|
||||
<source>No files loaded</source>
|
||||
<translation>Inga filer inlästa</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui.cpp" line="1148"/>
|
||||
<location filename="../src/gui.cpp" line="1202"/>
|
||||
<source>%n files</source>
|
||||
<translation>
|
||||
<numerusform>%n filer</numerusform>
|
||||
@ -511,153 +527,153 @@
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<source>GPX files (*.gpx)</source>
|
||||
<translation>GPX-filer (*.gpx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="111"/>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<source>TCX files (*.tcx)</source>
|
||||
<translation>TCX-filer (*.tcx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<location filename="../src/gui.cpp" line="109"/>
|
||||
<source>KML files (*.kml)</source>
|
||||
<translation>KML-filer (*.kml)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="108"/>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<source>CSV files (*.csv)</source>
|
||||
<translation>CSV-filer (*.csv)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="111"/>
|
||||
<location filename="../src/gui.cpp" line="110"/>
|
||||
<source>All files (*)</source>
|
||||
<translation>Alla filer (*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="932"/>
|
||||
<location filename="../src/gui.cpp" line="935"/>
|
||||
<location filename="../src/gui.cpp" line="960"/>
|
||||
<location filename="../src/gui.cpp" line="963"/>
|
||||
<source>Date</source>
|
||||
<translation>Datum</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="924"/>
|
||||
<location filename="../src/gui.cpp" line="952"/>
|
||||
<source>Routes</source>
|
||||
<translation>Rutter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="645"/>
|
||||
<location filename="../src/gui.cpp" line="673"/>
|
||||
<source>Next file</source>
|
||||
<translation>Nästa fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="622"/>
|
||||
<location filename="../src/gui.cpp" line="650"/>
|
||||
<source>Version </source>
|
||||
<translation>Version </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="289"/>
|
||||
<location filename="../src/gui.cpp" line="315"/>
|
||||
<source>Print...</source>
|
||||
<translation>Skriv ut...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="294"/>
|
||||
<location filename="../src/gui.cpp" line="320"/>
|
||||
<source>Export to PDF...</source>
|
||||
<translation>Exportera till PDF...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="926"/>
|
||||
<location filename="../src/gui.cpp" line="954"/>
|
||||
<source>Waypoints</source>
|
||||
<translation>Vägpunkter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="646"/>
|
||||
<location filename="../src/gui.cpp" line="674"/>
|
||||
<source>Previous file</source>
|
||||
<translation>Föregående fil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="107"/>
|
||||
<location filename="../src/gui.cpp" line="106"/>
|
||||
<source>Supported files (*.csv *.fit *.gpx *.igc *.kml *.nmea *.tcx)</source>
|
||||
<translation>Filer som stöds (*.csv *.fit *.gpx *.igc *.kml *.nmea *.tcx)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="380"/>
|
||||
<location filename="../src/gui.cpp" line="407"/>
|
||||
<source>Route waypoints</source>
|
||||
<translation>Ruttvägpunkter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="648"/>
|
||||
<location filename="../src/gui.cpp" line="676"/>
|
||||
<source>First file</source>
|
||||
<translation>Första filen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="650"/>
|
||||
<location filename="../src/gui.cpp" line="678"/>
|
||||
<source>Last file</source>
|
||||
<translation>Sista filen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="677"/>
|
||||
<location filename="../src/gui.cpp" line="705"/>
|
||||
<source>The file format is one map entry per line, consisting of the map name and tiles URL delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
||||
<translation>Filformatet är en kartpost per rad, bestående av kartnamn och kartrutans URL, avgränsade med ett TAB-tecken. Kartrutans X- och Y-koordinater ersätts med $x och $y i URL:en och zoomnivån ersätts med $z. Exempel på en kartfil kan se ut så här:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="693"/>
|
||||
<location filename="../src/gui.cpp" line="721"/>
|
||||
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
||||
<translation>För att GPXSee skall läsa in en POI-fil automatiskt vid programstart, läggs filen i följande mapp:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="782"/>
|
||||
<location filename="../src/gui.cpp" line="810"/>
|
||||
<source>Error loading data file:</source>
|
||||
<translation>Fel vid inläsning av datafil:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="785"/>
|
||||
<location filename="../src/gui.cpp" line="810"/>
|
||||
<location filename="../src/gui.cpp" line="813"/>
|
||||
<location filename="../src/gui.cpp" line="838"/>
|
||||
<source>Line: %1</source>
|
||||
<translation>Rad: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="807"/>
|
||||
<location filename="../src/gui.cpp" line="835"/>
|
||||
<source>Error loading POI file:</source>
|
||||
<translation>Fel vid inläsning av POI-fil:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="918"/>
|
||||
<location filename="../src/gui.cpp" line="946"/>
|
||||
<source>Name</source>
|
||||
<translation>Namn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="922"/>
|
||||
<location filename="../src/gui.cpp" line="950"/>
|
||||
<source>Tracks</source>
|
||||
<translation>Spår</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="279"/>
|
||||
<location filename="../src/gui.cpp" line="621"/>
|
||||
<location filename="../src/gui.cpp" line="305"/>
|
||||
<location filename="../src/gui.cpp" line="649"/>
|
||||
<source>About GPXSee</source>
|
||||
<translation>Om GPXSee</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="560"/>
|
||||
<location filename="../src/gui.cpp" line="588"/>
|
||||
<source>Navigation</source>
|
||||
<translation>Navigation</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="692"/>
|
||||
<location filename="../src/gui.cpp" line="720"/>
|
||||
<source>POIs</source>
|
||||
<translation>POI:er</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="395"/>
|
||||
<location filename="../src/gui.cpp" line="942"/>
|
||||
<location filename="../src/gui.cpp" line="422"/>
|
||||
<location filename="../src/gui.cpp" line="970"/>
|
||||
<source>Distance</source>
|
||||
<translation>Avstånd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui.cpp" line="402"/>
|
||||
<location filename="../src/gui.cpp" line="524"/>
|
||||
<location filename="../src/gui.cpp" line="944"/>
|
||||
<location filename="../src/gui.cpp" line="429"/>
|
||||
<location filename="../src/gui.cpp" line="552"/>
|
||||
<location filename="../src/gui.cpp" line="972"/>
|
||||
<source>Time</source>
|
||||
<translation>Tid</translation>
|
||||
</message>
|
||||
|
@ -5,7 +5,7 @@
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "4.4"
|
||||
!define VERSION "4.5"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}.exe"
|
||||
|
@ -5,7 +5,7 @@
|
||||
; The name of the installer
|
||||
Name "GPXSee"
|
||||
; Program version
|
||||
!define VERSION "4.4"
|
||||
!define VERSION "4.5"
|
||||
|
||||
; The file to write
|
||||
OutFile "GPXSee-${VERSION}_x64.exe"
|
||||
|
@ -30,25 +30,35 @@ static bool yCmp(const OfflineMap *m1, const OfflineMap *m2)
|
||||
return TL(m1).y() > TL(m2).y();
|
||||
}
|
||||
|
||||
bool Atlas::isAtlas(Tar &tar, const QFileInfoList &files)
|
||||
bool Atlas::isAtlas(Tar &tar, const QString &path)
|
||||
{
|
||||
for (int i = 0; i < files.count(); i++) {
|
||||
const QString &fileName = files.at(i).fileName();
|
||||
if (fileName.endsWith(".tar")) {
|
||||
if (!tar.load(files.at(i).absoluteFilePath())) {
|
||||
qWarning("%s: %s: error loading tar file", qPrintable(_name),
|
||||
qPrintable(fileName));
|
||||
return false;
|
||||
}
|
||||
QStringList tarFiles = tar.files();
|
||||
for (int j = 0; j < tarFiles.size(); j++)
|
||||
if (tarFiles.at(j).endsWith(".tba"))
|
||||
return true;
|
||||
} else if (fileName.endsWith(".tba"))
|
||||
return true;
|
||||
QFileInfo fi(path);
|
||||
QByteArray ba;
|
||||
QString suffix = fi.suffix().toLower();
|
||||
|
||||
if (suffix == "tar") {
|
||||
if (!tar.load(path)) {
|
||||
_errorString = "Error reading tar file";
|
||||
return false;
|
||||
}
|
||||
QString tbaFileName = fi.completeBaseName() + ".tba";
|
||||
ba = tar.file(tbaFileName);
|
||||
} else if (suffix == "tba") {
|
||||
QFile tbaFile(path);
|
||||
if (!tbaFile.open(QIODevice::ReadOnly)) {
|
||||
_errorString = QString("Error opening tba file: %1")
|
||||
.arg(tbaFile.errorString());
|
||||
return false;
|
||||
}
|
||||
ba = tbaFile.readAll();
|
||||
}
|
||||
|
||||
return false;
|
||||
if (ba.startsWith("Atlas 1.0"))
|
||||
return true;
|
||||
else {
|
||||
_errorString = "Missing or invalid tba file";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void Atlas::computeZooms()
|
||||
@ -100,38 +110,45 @@ void Atlas::computeBounds()
|
||||
BR(_maps.at(i))), QRectF(offsets.at(i), _maps.at(i)->bounds().size())));
|
||||
}
|
||||
|
||||
Atlas::Atlas(const QString &path, QObject *parent) : Map(parent)
|
||||
Atlas::Atlas(const QString &fileName, QObject *parent) : Map(parent)
|
||||
{
|
||||
Tar tar;
|
||||
QFileInfo fi(fileName);
|
||||
|
||||
_valid = false;
|
||||
_zoom = 0;
|
||||
_name = fi.dir().dirName();
|
||||
|
||||
QFileInfo fi(path);
|
||||
_name = fi.fileName();
|
||||
|
||||
QDir dir(path);
|
||||
QFileInfoList files = dir.entryInfoList(QDir::Files);
|
||||
if (!isAtlas(tar, files))
|
||||
if (!isAtlas(tar, fileName))
|
||||
return;
|
||||
|
||||
QDir dir(fi.absolutePath());
|
||||
QFileInfoList layers = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
for (int n = 0; n < layers.count(); n++) {
|
||||
QDir zdir(layers.at(n).absoluteFilePath());
|
||||
QFileInfoList maps = zdir.entryInfoList(QDir::Dirs
|
||||
| QDir::NoDotAndDotDot);
|
||||
for (int i = 0; i < maps.count(); i++) {
|
||||
QString mapFile = maps.at(i).absoluteFilePath() + "/"
|
||||
+ maps.at(i).fileName() + ".map";
|
||||
|
||||
OfflineMap *map;
|
||||
if (tar.isOpen())
|
||||
map = new OfflineMap(tar, maps.at(i).absoluteFilePath(), this);
|
||||
map = new OfflineMap(mapFile, tar, this);
|
||||
else
|
||||
map = new OfflineMap(maps.at(i).absoluteFilePath(), this);
|
||||
map = new OfflineMap(mapFile, this);
|
||||
|
||||
if (map->isValid())
|
||||
_maps.append(map);
|
||||
else {
|
||||
_errorString = QString("Error loading map: %1: %2")
|
||||
.arg(mapFile, map->errorString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_maps.isEmpty()) {
|
||||
qWarning("%s: No usable maps available", qPrintable(_name));
|
||||
_errorString = "No maps found in atlas";
|
||||
return;
|
||||
}
|
||||
|
||||
@ -186,7 +203,7 @@ qreal Atlas::zoomFit(const QSize &size, const QRectF &br)
|
||||
|
||||
for (int z = 0; z < _zooms.count(); z++) {
|
||||
for (int i = _zooms.at(z).first; i <= _zooms.at(z).second; i++) {
|
||||
if (_bounds.at(i).first.contains(_maps.at(i)->ll2pp(br.center())))
|
||||
if (!_bounds.at(i).first.contains(_maps.at(i)->ll2pp(br.center())))
|
||||
continue;
|
||||
|
||||
QRect sbr = QRectF(_maps.at(i)->ll2xy(br.topLeft()),
|
||||
@ -278,3 +295,9 @@ void Atlas::draw(QPainter *painter, const QRectF &rect, int mapIndex)
|
||||
map->draw(painter, pr);
|
||||
painter->translate(-offset);
|
||||
}
|
||||
|
||||
void Atlas::unload()
|
||||
{
|
||||
for (int i = 0; i < _maps.count(); i++)
|
||||
_maps.at(i)->unload();
|
||||
}
|
||||
|
10
src/atlas.h
10
src/atlas.h
@ -11,7 +11,7 @@ class Atlas : public Map
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Atlas(const QString &path, QObject *parent = 0);
|
||||
Atlas(const QString &fileName, QObject *parent = 0);
|
||||
~Atlas();
|
||||
|
||||
const QString &name() const {return _name;}
|
||||
@ -29,16 +29,20 @@ public:
|
||||
|
||||
void draw(QPainter *painter, const QRectF &rect);
|
||||
|
||||
bool isValid() {return _valid;}
|
||||
void unload();
|
||||
|
||||
bool isValid() const {return _valid;}
|
||||
const QString &errorString() const {return _errorString;}
|
||||
|
||||
private:
|
||||
void draw(QPainter *painter, const QRectF &rect, int mapIndex);
|
||||
bool isAtlas(Tar &tar, const QFileInfoList &files);
|
||||
bool isAtlas(Tar &tar, const QString &path);
|
||||
void computeZooms();
|
||||
void computeBounds();
|
||||
|
||||
QString _name;
|
||||
bool _valid;
|
||||
QString _errorString;
|
||||
|
||||
QList<OfflineMap*> _maps;
|
||||
QVector<QPair<int, int> > _zooms;
|
||||
|
157
src/gui.cpp
157
src/gui.cpp
@ -30,7 +30,6 @@
|
||||
#include "datum.h"
|
||||
#include "map.h"
|
||||
#include "maplist.h"
|
||||
#include "mapdir.h"
|
||||
#include "emptymap.h"
|
||||
#include "elevationgraph.h"
|
||||
#include "speedgraph.h"
|
||||
@ -166,21 +165,48 @@ void GUI::loadDatums()
|
||||
|
||||
void GUI::loadMaps()
|
||||
{
|
||||
QList<Map*> online, offline;
|
||||
_ml = new MapList(this);
|
||||
|
||||
QString offline, online;
|
||||
|
||||
if (QFile::exists(USER_MAP_FILE))
|
||||
online = MapList::load(USER_MAP_FILE, this);
|
||||
else
|
||||
online = MapList::load(GLOBAL_MAP_FILE, this);
|
||||
online = USER_MAP_FILE;
|
||||
else if (QFile::exists(GLOBAL_MAP_FILE))
|
||||
online = GLOBAL_MAP_FILE;
|
||||
|
||||
if (!online.isNull() && !_ml->loadList(online))
|
||||
qWarning("%s: %s", qPrintable(online), qPrintable(_ml->errorString()));
|
||||
|
||||
|
||||
if (QFile::exists(USER_MAP_DIR))
|
||||
offline = MapDir::load(USER_MAP_DIR, this);
|
||||
else
|
||||
offline = MapDir::load(GLOBAL_MAP_DIR, this);
|
||||
offline = USER_MAP_DIR;
|
||||
else if (QFile::exists(GLOBAL_MAP_DIR))
|
||||
offline = GLOBAL_MAP_DIR;
|
||||
|
||||
_maps = online + offline;
|
||||
if (!offline.isNull()) {
|
||||
QDir md(offline);
|
||||
QFileInfoList ml = md.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
QStringList filters;
|
||||
filters << "*.map" << "*.tba" << "*.tar";
|
||||
|
||||
_map = _maps.isEmpty() ? new EmptyMap(this) : _maps.first();
|
||||
for (int i = 0; i < ml.size(); i++) {
|
||||
QDir dir(ml.at(i).absoluteFilePath());
|
||||
QFileInfoList fl = dir.entryInfoList(filters, QDir::Files);
|
||||
|
||||
if (fl.isEmpty())
|
||||
qWarning("%s: no map/atlas file found",
|
||||
qPrintable(ml.at(i).absoluteFilePath()));
|
||||
else if (fl.size() > 1)
|
||||
qWarning("%s: ambiguous directory content",
|
||||
qPrintable(ml.at(i).absoluteFilePath()));
|
||||
else
|
||||
if (!_ml->loadMap(fl.first().absoluteFilePath()))
|
||||
qWarning("%s: %s", qPrintable(fl.first().absoluteFilePath()),
|
||||
qPrintable(_ml->errorString()));
|
||||
}
|
||||
}
|
||||
|
||||
_map = _ml->maps().isEmpty() ? new EmptyMap(this) : _ml->maps().first();
|
||||
}
|
||||
|
||||
void GUI::loadPOIs()
|
||||
@ -209,33 +235,33 @@ void GUI::loadPOIs()
|
||||
|
||||
void GUI::createMapActions()
|
||||
{
|
||||
QActionGroup *ag = new QActionGroup(this);
|
||||
ag->setExclusive(true);
|
||||
_mapsSignalMapper = new QSignalMapper(this);
|
||||
_mapsActionGroup = new QActionGroup(this);
|
||||
_mapsActionGroup->setExclusive(true);
|
||||
|
||||
QSignalMapper *sm = new QSignalMapper(this);
|
||||
|
||||
for (int i = 0; i < _maps.count(); i++) {
|
||||
QAction *a = new QAction(_maps.at(i)->name(), this);
|
||||
for (int i = 0; i < _ml->maps().count(); i++) {
|
||||
QAction *a = new QAction(_ml->maps().at(i)->name(), this);
|
||||
a->setCheckable(true);
|
||||
a->setActionGroup(ag);
|
||||
a->setActionGroup(_mapsActionGroup);
|
||||
|
||||
sm->setMapping(a, i);
|
||||
connect(a, SIGNAL(triggered()), sm, SLOT(map()));
|
||||
_mapsSignalMapper->setMapping(a, i);
|
||||
connect(a, SIGNAL(triggered()), _mapsSignalMapper, SLOT(map()));
|
||||
|
||||
_mapActions.append(a);
|
||||
}
|
||||
|
||||
connect(sm, SIGNAL(mapped(int)), this, SLOT(mapChanged(int)));
|
||||
connect(_mapsSignalMapper, SIGNAL(mapped(int)), this,
|
||||
SLOT(mapChanged(int)));
|
||||
}
|
||||
|
||||
void GUI::createPOIFilesActions()
|
||||
{
|
||||
_poiFilesSM = new QSignalMapper(this);
|
||||
_poiFilesSignalMapper = new QSignalMapper(this);
|
||||
|
||||
for (int i = 0; i < _poi->files().count(); i++)
|
||||
createPOIFileAction(i);
|
||||
|
||||
connect(_poiFilesSM, SIGNAL(mapped(int)), this, SLOT(poiFileChecked(int)));
|
||||
connect(_poiFilesSignalMapper, SIGNAL(mapped(int)), this, SLOT(poiFileChecked(int)));
|
||||
}
|
||||
|
||||
QAction *GUI::createPOIFileAction(int index)
|
||||
@ -244,8 +270,8 @@ QAction *GUI::createPOIFileAction(int index)
|
||||
this);
|
||||
a->setCheckable(true);
|
||||
|
||||
_poiFilesSM->setMapping(a, index);
|
||||
connect(a, SIGNAL(triggered()), _poiFilesSM, SLOT(map()));
|
||||
_poiFilesSignalMapper->setMapping(a, index);
|
||||
connect(a, SIGNAL(triggered()), _poiFilesSignalMapper, SLOT(map()));
|
||||
|
||||
_poiFilesActions.append(a);
|
||||
|
||||
@ -341,23 +367,24 @@ void GUI::createActions()
|
||||
connect(_showMapAction, SIGNAL(triggered(bool)), _pathView,
|
||||
SLOT(showMap(bool)));
|
||||
addAction(_showMapAction);
|
||||
_loadMapAction = new QAction(QIcon(QPixmap(OPEN_FILE_ICON)), tr("Load map"),
|
||||
this);
|
||||
connect(_loadMapAction, SIGNAL(triggered()), this, SLOT(loadMap()));
|
||||
_clearMapCacheAction = new QAction(tr("Clear tile cache"), this);
|
||||
connect(_clearMapCacheAction, SIGNAL(triggered()), this,
|
||||
SLOT(clearMapCache()));
|
||||
if (_maps.empty()) {
|
||||
createMapActions();
|
||||
_nextMapAction = new QAction(tr("Next map"), this);
|
||||
_nextMapAction->setShortcut(NEXT_MAP_SHORTCUT);
|
||||
connect(_nextMapAction, SIGNAL(triggered()), this, SLOT(nextMap()));
|
||||
addAction(_nextMapAction);
|
||||
_prevMapAction = new QAction(tr("Next map"), this);
|
||||
_prevMapAction->setShortcut(PREV_MAP_SHORTCUT);
|
||||
connect(_prevMapAction, SIGNAL(triggered()), this, SLOT(prevMap()));
|
||||
addAction(_prevMapAction);
|
||||
if (_ml->maps().isEmpty()) {
|
||||
_showMapAction->setEnabled(false);
|
||||
_clearMapCacheAction->setEnabled(false);
|
||||
} else {
|
||||
createMapActions();
|
||||
|
||||
_nextMapAction = new QAction(tr("Next map"), this);
|
||||
_nextMapAction->setShortcut(NEXT_MAP_SHORTCUT);
|
||||
connect(_nextMapAction, SIGNAL(triggered()), this, SLOT(nextMap()));
|
||||
addAction(_nextMapAction);
|
||||
_prevMapAction = new QAction(tr("Next map"), this);
|
||||
_prevMapAction->setShortcut(PREV_MAP_SHORTCUT);
|
||||
connect(_prevMapAction, SIGNAL(triggered()), this, SLOT(prevMap()));
|
||||
addAction(_prevMapAction);
|
||||
}
|
||||
|
||||
// Data actions
|
||||
@ -484,12 +511,13 @@ void GUI::createMenus()
|
||||
fileMenu->addAction(_exitAction);
|
||||
#endif // Q_OS_MAC
|
||||
|
||||
QMenu *mapMenu = menuBar()->addMenu(tr("Map"));
|
||||
mapMenu->addActions(_mapActions);
|
||||
mapMenu->addSeparator();
|
||||
mapMenu->addAction(_clearMapCacheAction);
|
||||
mapMenu->addSeparator();
|
||||
mapMenu->addAction(_showMapAction);
|
||||
_mapMenu = menuBar()->addMenu(tr("Map"));
|
||||
_mapMenu->addActions(_mapActions);
|
||||
_mapsEnd = _mapMenu->addSeparator();
|
||||
_mapMenu->addAction(_loadMapAction);
|
||||
_mapMenu->addAction(_clearMapCacheAction);
|
||||
_mapMenu->addSeparator();
|
||||
_mapMenu->addAction(_showMapAction);
|
||||
|
||||
QMenu *graphMenu = menuBar()->addMenu(tr("Graph"));
|
||||
graphMenu->addAction(_distanceGraphAction);
|
||||
@ -1132,6 +1160,32 @@ void GUI::showGraphGrids(bool show)
|
||||
_tabs.at(i)->showGrid(show);
|
||||
}
|
||||
|
||||
void GUI::loadMap()
|
||||
{
|
||||
QString fileName = QFileDialog::getOpenFileName(this, tr("Load map"),
|
||||
QString(), tr("Map files (*.map *.tba *.tar)"));
|
||||
|
||||
if (fileName.isEmpty())
|
||||
return;
|
||||
|
||||
if (_ml->loadMap(fileName)) {
|
||||
QAction *a = new QAction(_ml->maps().last()->name(), this);
|
||||
a->setCheckable(true);
|
||||
a->setActionGroup(_mapsActionGroup);
|
||||
_mapsSignalMapper->setMapping(a, _ml->maps().size() - 1);
|
||||
connect(a, SIGNAL(triggered()), _mapsSignalMapper, SLOT(map()));
|
||||
_mapActions.append(a);
|
||||
_mapMenu->insertAction(_mapsEnd, a);
|
||||
_showMapAction->setEnabled(true);
|
||||
_clearMapCacheAction->setEnabled(true);
|
||||
a->activate(QAction::Trigger);
|
||||
} else {
|
||||
QString error = tr("Error loading map:") + "\n\n"
|
||||
+ fileName + "\n\n" + _ml->errorString();
|
||||
QMessageBox::critical(this, APP_NAME, error);
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::clearMapCache()
|
||||
{
|
||||
_map->clearCache();
|
||||
@ -1178,26 +1232,27 @@ void GUI::updateWindowTitle()
|
||||
|
||||
void GUI::mapChanged(int index)
|
||||
{
|
||||
_map = _maps.at(index);
|
||||
_map = _ml->maps().at(index);
|
||||
_pathView->setMap(_map);
|
||||
}
|
||||
|
||||
void GUI::nextMap()
|
||||
{
|
||||
if (_maps.count() < 2)
|
||||
if (_ml->maps().count() < 2)
|
||||
return;
|
||||
|
||||
int next = (_maps.indexOf(_map) + 1) % _maps.count();
|
||||
int next = (_ml->maps().indexOf(_map) + 1) % _ml->maps().count();
|
||||
_mapActions.at(next)->setChecked(true);
|
||||
mapChanged(next);
|
||||
}
|
||||
|
||||
void GUI::prevMap()
|
||||
{
|
||||
if (_maps.count() < 2)
|
||||
if (_ml->maps().count() < 2)
|
||||
return;
|
||||
|
||||
int prev = (_maps.indexOf(_map) + _maps.count() - 1) % _maps.count();
|
||||
int prev = (_ml->maps().indexOf(_map) + _ml->maps().count() - 1)
|
||||
% _ml->maps().count();
|
||||
_mapActions.at(prev)->setChecked(true);
|
||||
mapChanged(prev);
|
||||
}
|
||||
@ -1578,10 +1633,10 @@ void GUI::readSettings()
|
||||
settings.beginGroup(MAP_SETTINGS_GROUP);
|
||||
if (settings.value(SHOW_MAP_SETTING, SHOW_MAP_DEFAULT).toBool())
|
||||
_showMapAction->setChecked(true);
|
||||
if (_maps.count()) {
|
||||
if (_ml->maps().count()) {
|
||||
int index = mapIndex(settings.value(CURRENT_MAP_SETTING).toString());
|
||||
_mapActions.at(index)->setChecked(true);
|
||||
_map = _maps.at(index);
|
||||
_map = _ml->maps().at(index);
|
||||
_pathView->setMap(_map);
|
||||
}
|
||||
settings.endGroup();
|
||||
@ -1743,8 +1798,8 @@ void GUI::readSettings()
|
||||
|
||||
int GUI::mapIndex(const QString &name)
|
||||
{
|
||||
for (int i = 0; i < _maps.count(); i++)
|
||||
if (_maps.at(i)->name() == name)
|
||||
for (int i = 0; i < _ml->maps().count(); i++)
|
||||
if (_ml->maps().at(i)->name() == name)
|
||||
return i;
|
||||
|
||||
return 0;
|
||||
|
12
src/gui.h
12
src/gui.h
@ -13,6 +13,7 @@
|
||||
#include "exportdialog.h"
|
||||
#include "optionsdialog.h"
|
||||
|
||||
|
||||
class QMenu;
|
||||
class QToolBar;
|
||||
class QTabWidget;
|
||||
@ -25,6 +26,7 @@ class FileBrowser;
|
||||
class GraphTab;
|
||||
class PathView;
|
||||
class Map;
|
||||
class MapList;
|
||||
|
||||
class GUI : public QMainWindow
|
||||
{
|
||||
@ -53,6 +55,7 @@ private slots:
|
||||
void showFullscreen(bool show);
|
||||
void showTracks(bool show);
|
||||
void showRoutes(bool show);
|
||||
void loadMap();
|
||||
void clearMapCache();
|
||||
void nextMap();
|
||||
void prevMap();
|
||||
@ -129,9 +132,11 @@ private:
|
||||
QToolBar *_showToolBar;
|
||||
QToolBar *_navigationToolBar;
|
||||
QMenu *_poiFilesMenu;
|
||||
QMenu *_mapMenu;
|
||||
|
||||
QActionGroup *_fileActionGroup;
|
||||
QActionGroup *_navigationActionGroup;
|
||||
QActionGroup *_mapsActionGroup;
|
||||
QAction *_exitAction;
|
||||
QAction *_keysAction;
|
||||
QAction *_dataSourcesAction;
|
||||
@ -149,6 +154,7 @@ private:
|
||||
QAction *_showPOILabelsAction;
|
||||
QAction *_showMapAction;
|
||||
QAction *_fullscreenAction;
|
||||
QAction *_loadMapAction;
|
||||
QAction *_clearMapCacheAction;
|
||||
QAction *_showGraphsAction;
|
||||
QAction *_showGraphGridAction;
|
||||
@ -171,10 +177,12 @@ private:
|
||||
QAction *_showWaypointLabelsAction;
|
||||
QAction *_showRouteWaypointsAction;
|
||||
QAction *_openOptionsAction;
|
||||
QAction *_mapsEnd;
|
||||
QList<QAction*> _mapActions;
|
||||
QList<QAction*> _poiFilesActions;
|
||||
|
||||
QSignalMapper *_poiFilesSM;
|
||||
QSignalMapper *_poiFilesSignalMapper;
|
||||
QSignalMapper *_mapsSignalMapper;
|
||||
|
||||
QLabel *_fileNameLabel;
|
||||
QLabel *_distanceLabel;
|
||||
@ -185,7 +193,7 @@ private:
|
||||
QList<GraphTab*> _tabs;
|
||||
|
||||
POI *_poi;
|
||||
QList<Map*> _maps;
|
||||
MapList *_ml;
|
||||
|
||||
FileBrowser *_browser;
|
||||
QList<QString> _files;
|
||||
|
@ -1,40 +0,0 @@
|
||||
#include <QDir>
|
||||
#include "atlas.h"
|
||||
#include "offlinemap.h"
|
||||
#include "mapdir.h"
|
||||
|
||||
QList<Map*> MapDir::load(const QString &path, QObject *parent)
|
||||
{
|
||||
QList<Map*> maps;
|
||||
QDir dir(path);
|
||||
|
||||
|
||||
if (!dir.exists())
|
||||
return maps;
|
||||
|
||||
if (!dir.isReadable()) {
|
||||
qWarning("Map directory not readable: %s\n", qPrintable(path));
|
||||
return maps;
|
||||
}
|
||||
|
||||
QFileInfoList list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
QFileInfo fileInfo = list.at(i);
|
||||
|
||||
Atlas *atlas = new Atlas(fileInfo.absoluteFilePath(), parent);
|
||||
if (atlas->isValid())
|
||||
maps.append(atlas);
|
||||
else {
|
||||
delete atlas;
|
||||
|
||||
OfflineMap *map = new OfflineMap(fileInfo.absoluteFilePath(),
|
||||
parent);
|
||||
if (map->isValid())
|
||||
maps.append(map);
|
||||
else
|
||||
delete map;
|
||||
}
|
||||
}
|
||||
|
||||
return maps;
|
||||
}
|
16
src/mapdir.h
16
src/mapdir.h
@ -1,16 +0,0 @@
|
||||
#ifndef MAPDIR_H
|
||||
#define MAPDIR_H
|
||||
|
||||
#include <QList>
|
||||
#include <QString>
|
||||
|
||||
class QObject;
|
||||
class Map;
|
||||
|
||||
class MapDir
|
||||
{
|
||||
public:
|
||||
static QList<Map*> load(const QString &path, QObject *parent = 0);
|
||||
};
|
||||
|
||||
#endif // MAPDIR_H
|
101
src/maplist.cpp
101
src/maplist.cpp
@ -1,41 +1,100 @@
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include "atlas.h"
|
||||
#include "offlinemap.h"
|
||||
#include "onlinemap.h"
|
||||
#include "maplist.h"
|
||||
|
||||
|
||||
QList<Map*> MapList::load(const QString &fileName, QObject *parent)
|
||||
bool MapList::loadListEntry(const QByteArray &line)
|
||||
{
|
||||
QList<Map*> maps;
|
||||
QFileInfo fi(fileName);
|
||||
QList<QByteArray> list = line.split('\t');
|
||||
if (list.size() != 2)
|
||||
return false;
|
||||
|
||||
if (!fi.exists())
|
||||
return maps;
|
||||
QByteArray ba1 = list[0].trimmed();
|
||||
QByteArray ba2 = list[1].trimmed();
|
||||
if (ba1.isEmpty() || ba2.isEmpty())
|
||||
return false;
|
||||
|
||||
QFile file(fileName);
|
||||
_maps.append(new OnlineMap(QString::fromUtf8(ba1.data(), ba1.size()),
|
||||
QString::fromLatin1(ba2.data(), ba2.size()), this));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MapList::loadList(const QString &path)
|
||||
{
|
||||
QFile file(path);
|
||||
|
||||
if (!file.open(QFile::ReadOnly | QFile::Text)) {
|
||||
qWarning("Error opening map list file: %s: %s\n",
|
||||
qPrintable(fileName), qPrintable(file.errorString()));
|
||||
return maps;
|
||||
_errorString = file.errorString();
|
||||
return false;
|
||||
}
|
||||
|
||||
int ln = 0;
|
||||
while (!file.atEnd()) {
|
||||
ln++;
|
||||
QByteArray line = file.readLine();
|
||||
QList<QByteArray> list = line.split('\t');
|
||||
if (list.size() != 2) {
|
||||
qWarning("Invalid map list entry on line %d\n", ln);
|
||||
continue;
|
||||
|
||||
if (!loadListEntry(line)) {
|
||||
_errorString = QString("Invalid map list entry on line %1.")
|
||||
.arg(QString::number(ln));
|
||||
return false;
|
||||
}
|
||||
|
||||
QByteArray ba1 = list[0].trimmed();
|
||||
QByteArray ba2 = list[1].trimmed();
|
||||
|
||||
maps.append(new OnlineMap(QString::fromUtf8(ba1.data(), ba1.size()),
|
||||
QString::fromLatin1(ba2.data(), ba2.size()), parent));
|
||||
}
|
||||
|
||||
return maps;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MapList::loadMap(const QString &path)
|
||||
{
|
||||
QFileInfo fi(path);
|
||||
QString suffix = fi.suffix().toLower();
|
||||
|
||||
if (suffix == "map") {
|
||||
OfflineMap *om = new OfflineMap(path, this);
|
||||
if (om->isValid()) {
|
||||
_maps.append(om);
|
||||
return true;
|
||||
} else {
|
||||
_errorString = om->errorString();
|
||||
delete om;
|
||||
return false;
|
||||
}
|
||||
} else if (suffix == "tba") {
|
||||
Atlas *atlas = new Atlas(path, this);
|
||||
if (atlas->isValid()) {
|
||||
_maps.append(atlas);
|
||||
return true;
|
||||
} else {
|
||||
_errorString = atlas->errorString();
|
||||
delete atlas;
|
||||
return false;
|
||||
}
|
||||
} else if (suffix == "tar") {
|
||||
Atlas *atlas = new Atlas(path, this);
|
||||
if (atlas->isValid()) {
|
||||
_maps.append(atlas);
|
||||
return true;
|
||||
} else {
|
||||
_errorString = atlas->errorString();
|
||||
delete atlas;
|
||||
OfflineMap *om = new OfflineMap(path, this);
|
||||
if (om->isValid()) {
|
||||
_maps.append(om);
|
||||
return true;
|
||||
} else {
|
||||
qWarning("%s: %s", qPrintable(path), qPrintable(_errorString));
|
||||
qWarning("%s: %s", qPrintable(path),
|
||||
qPrintable(om->errorString()));
|
||||
_errorString = "Not a map/atlas file";
|
||||
delete om;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
_errorString = "Not a map/atlas file";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,28 @@
|
||||
#ifndef MAPLIST_H
|
||||
#define MAPLIST_H
|
||||
|
||||
#include <QList>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include "map.h"
|
||||
|
||||
class QObject;
|
||||
class Map;
|
||||
|
||||
class MapList
|
||||
class MapList : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
static QList<Map*> load(const QString &fileName, QObject *parent = 0);
|
||||
MapList(QObject *parent = 0) : QObject(parent) {}
|
||||
|
||||
bool loadMap(const QString &path);
|
||||
bool loadList(const QString &path);
|
||||
|
||||
QList<Map*> &maps() {return _maps;}
|
||||
const QString &errorString() const {return _errorString;}
|
||||
|
||||
private:
|
||||
bool loadListEntry(const QByteArray &line);
|
||||
|
||||
QList<Map*> _maps;
|
||||
QString _errorString;
|
||||
};
|
||||
|
||||
#endif // MAPLIST_H
|
||||
|
@ -46,7 +46,7 @@ static Coordinates toWGS84(Coordinates c, const Datum &datum)
|
||||
double adb = 1.0 / (1.0 - from_f);
|
||||
double rn = from_a / sqrt(1 - from_esq * ssqlat);
|
||||
double rm = from_a * (1 - from_esq) / pow((1 - from_esq * ssqlat), 1.5);
|
||||
double from_h = 0.0; // we're flat!
|
||||
double from_h = 0.0;
|
||||
|
||||
double dlat = (-dX * slat * clon - dY * slat * slon + dZ * clat + da * rn
|
||||
* from_esq * slat * clat / from_a + +df * (rm * adb + rn / adb) * slat
|
||||
@ -56,23 +56,22 @@ static Coordinates toWGS84(Coordinates c, const Datum &datum)
|
||||
return Coordinates(c.lon() + rad2deg(dlon), c.lat() + rad2deg(dlat));
|
||||
}
|
||||
|
||||
int OfflineMap::parseMapFile(QIODevice &device, QList<ReferencePoint> &points,
|
||||
|
||||
int OfflineMap::parse(QIODevice &device, QList<ReferencePoint> &points,
|
||||
QString &projection, ProjectionSetup &setup, QString &datum)
|
||||
{
|
||||
bool res;
|
||||
int ln = 1;
|
||||
|
||||
|
||||
if (!device.open(QIODevice::ReadOnly))
|
||||
return -1;
|
||||
|
||||
while (!device.atEnd()) {
|
||||
QByteArray line = device.readLine();
|
||||
|
||||
if (ln == 1) {
|
||||
if (!line.trimmed().startsWith("OziExplorer Map Data File"))
|
||||
return ln;
|
||||
} else if (ln == 3)
|
||||
} else if (ln == 2)
|
||||
_name = line.trimmed();
|
||||
else if (ln == 3)
|
||||
_imgPath = line.trimmed();
|
||||
else if (ln == 5)
|
||||
datum = line.split(',').at(0).trimmed();
|
||||
@ -173,19 +172,37 @@ int OfflineMap::parseMapFile(QIODevice &device, QList<ReferencePoint> &points,
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool OfflineMap::parseMapFile(QIODevice &device, QList<ReferencePoint> &points,
|
||||
QString &projection, ProjectionSetup &setup, QString &datum)
|
||||
{
|
||||
int el;
|
||||
|
||||
if (!device.open(QIODevice::ReadOnly)) {
|
||||
_errorString = QString("Error opening map file: %1")
|
||||
.arg(device.errorString());
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((el = parse(device, points, projection, setup, datum))) {
|
||||
_errorString = QString("Map file parse error on line %1").arg(el);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OfflineMap::createProjection(const QString &datum,
|
||||
const QString &projection, const ProjectionSetup &setup,
|
||||
QList<ReferencePoint> &points)
|
||||
{
|
||||
if (points.count() < 2) {
|
||||
qWarning("%s: insufficient number of reference points",
|
||||
qPrintable(_name));
|
||||
_errorString = "Insufficient number of reference points";
|
||||
return false;
|
||||
}
|
||||
|
||||
Datum d = Datum::datum(datum);
|
||||
if (d.isNull()) {
|
||||
qWarning("%s: %s: unknown datum", qPrintable(_name), qPrintable(datum));
|
||||
_errorString = QString("%1: Unknown datum").arg(datum);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -208,12 +225,11 @@ bool OfflineMap::createProjection(const QString &datum,
|
||||
else if (!points.first().ll.isNull())
|
||||
_projection = new UTM(d.ellipsoid(), points.first().ll);
|
||||
else {
|
||||
qWarning("%s: Can not determine UTM zone", qPrintable(_name));
|
||||
_errorString = "Can not determine UTM zone";
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
qWarning("%s: %s: unsupported map projection", qPrintable(_name),
|
||||
qPrintable(projection));
|
||||
_errorString = QString("%1: Unknown map projection").arg(projection);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -270,7 +286,7 @@ bool OfflineMap::computeTransformation(const QList<ReferencePoint> &points)
|
||||
|
||||
Matrix M = Q.augemented(c);
|
||||
if (!M.eliminate()) {
|
||||
qWarning("%s: singular transformation matrix", qPrintable(_name));
|
||||
_errorString = "Singular transformation matrix";
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -327,17 +343,16 @@ bool OfflineMap::getImageInfo(const QString &path)
|
||||
if (ii.exists())
|
||||
_imgPath = ii.absoluteFilePath();
|
||||
else {
|
||||
qWarning("%s: %s: No such image file", qPrintable(_name),
|
||||
qPrintable(_imgPath));
|
||||
_errorString = QString("%1: No such image file").arg(_imgPath);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (_imgPath.endsWith("ozf3", Qt::CaseInsensitive)
|
||||
|| _imgPath.endsWith("ozf4", Qt::CaseInsensitive)) {
|
||||
qWarning("%s: %s: obfuscated image files are not supported",
|
||||
qPrintable(_name), qPrintable(_imgPath));
|
||||
QString suffix = ii.suffix().toLower();
|
||||
if (suffix == "ozf3" || suffix == "ozf4") {
|
||||
_errorString = QString("%1: Obfuscated image files not supported")
|
||||
.arg(QFileInfo(_imgPath).fileName());
|
||||
return false;
|
||||
} else if (_imgPath.endsWith("ozf2", Qt::CaseInsensitive)) {
|
||||
} else if (suffix == "ozf2") {
|
||||
_ozf.load(_imgPath);
|
||||
_size = _ozf.size();
|
||||
} else {
|
||||
@ -345,8 +360,8 @@ bool OfflineMap::getImageInfo(const QString &path)
|
||||
_size = img.size();
|
||||
}
|
||||
if (!_size.isValid()) {
|
||||
qWarning("%s: %s: error reading map image", qPrintable(_name),
|
||||
qPrintable(_imgPath));
|
||||
_errorString = QString("%1: Error reading map image")
|
||||
.arg(QFileInfo(_imgPath).fileName());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -355,11 +370,6 @@ bool OfflineMap::getImageInfo(const QString &path)
|
||||
|
||||
bool OfflineMap::getTileInfo(const QStringList &tiles, const QString &path)
|
||||
{
|
||||
if (tiles.isEmpty()) {
|
||||
qWarning("%s: empty tile set", qPrintable(_name));
|
||||
return false;
|
||||
}
|
||||
|
||||
QRegExp rx("_[0-9]+_[0-9]+\\.");
|
||||
for (int i = 0; i < tiles.size(); i++) {
|
||||
if (tiles.at(i).contains(rx)) {
|
||||
@ -374,9 +384,8 @@ bool OfflineMap::getTileInfo(const QStringList &tiles, const QString &path)
|
||||
_tileSize = QImageReader(path + "/" + tiles.at(i)).size();
|
||||
}
|
||||
if (!_tileSize.isValid()) {
|
||||
qWarning("%s: error retrieving tile size: %s: invalid image",
|
||||
qPrintable(_name), qPrintable(QFileInfo(tiles.at(i))
|
||||
.fileName()));
|
||||
_errorString = QString("Error retrieving tile size: "
|
||||
"%1: Invalid image").arg(QFileInfo(tiles.at(i)).fileName());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -384,42 +393,27 @@ bool OfflineMap::getTileInfo(const QStringList &tiles, const QString &path)
|
||||
}
|
||||
}
|
||||
|
||||
qWarning("%s: invalid tile names", qPrintable(_name));
|
||||
|
||||
_errorString = "Invalid/missing tile set";
|
||||
return false;
|
||||
}
|
||||
|
||||
bool OfflineMap::mapLoaded(int res)
|
||||
{
|
||||
if (res) {
|
||||
if (res == -2)
|
||||
qWarning("%s: no map file found", qPrintable(_name));
|
||||
else if (res == -1)
|
||||
qWarning("%s: error opening map file", qPrintable(_name));
|
||||
else
|
||||
qWarning("%s: map file parse error on line: %d", qPrintable(_name),
|
||||
res);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OfflineMap::totalSizeSet()
|
||||
{
|
||||
if (!_size.isValid()) {
|
||||
qWarning("%s: missing total image size (IWH)", qPrintable(_name));
|
||||
_errorString = "Missing total image size (IWH)";
|
||||
return false;
|
||||
} else
|
||||
return true;
|
||||
}
|
||||
|
||||
OfflineMap::OfflineMap(const QString &path, QObject *parent) : Map(parent)
|
||||
OfflineMap::OfflineMap(const QString &fileName, QObject *parent)
|
||||
: Map(parent)
|
||||
{
|
||||
int errorLine = -2;
|
||||
QList<ReferencePoint> points;
|
||||
QString proj, datum;
|
||||
ProjectionSetup setup;
|
||||
QFileInfo fi(fileName);
|
||||
QString suffix = fi.suffix().toLower();
|
||||
|
||||
|
||||
_valid = false;
|
||||
@ -427,38 +421,29 @@ OfflineMap::OfflineMap(const QString &path, QObject *parent) : Map(parent)
|
||||
_projection = 0;
|
||||
_resolution = 0;
|
||||
|
||||
QFileInfo fi(path);
|
||||
_name = fi.fileName();
|
||||
|
||||
QDir dir(path);
|
||||
QFileInfoList mapFiles = dir.entryInfoList(QDir::Files);
|
||||
for (int i = 0; i < mapFiles.count(); i++) {
|
||||
const QString &fileName = mapFiles.at(i).fileName();
|
||||
if (fileName.endsWith(".tar")) {
|
||||
if (!_tar.load(mapFiles.at(i).absoluteFilePath())) {
|
||||
qWarning("%s: %s: error loading tar file", qPrintable(_name),
|
||||
qPrintable(fileName));
|
||||
return;
|
||||
}
|
||||
QStringList tarFiles = _tar.files();
|
||||
for (int j = 0; j < tarFiles.size(); j++) {
|
||||
if (tarFiles.at(j).endsWith(".map")) {
|
||||
QByteArray ba = _tar.file(tarFiles.at(j));
|
||||
QBuffer buffer(&ba);
|
||||
errorLine = parseMapFile(buffer, points, proj, setup, datum);
|
||||
_imgPath = QString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
} else if (fileName.endsWith(".map")) {
|
||||
QFile mapFile(mapFiles.at(i).absoluteFilePath());
|
||||
errorLine = parseMapFile(mapFile, points, proj, setup, datum);
|
||||
break;
|
||||
if (suffix == "tar") {
|
||||
if (!_tar.load(fileName)) {
|
||||
_errorString = "Error reading tar file";
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!mapLoaded(errorLine))
|
||||
|
||||
QString mapFileName = fi.completeBaseName() + ".map";
|
||||
QByteArray ba = _tar.file(mapFileName);
|
||||
if (ba.isNull()) {
|
||||
_errorString = "Map file not found";
|
||||
return;
|
||||
}
|
||||
QBuffer mapFile(&ba);
|
||||
if (!parseMapFile(mapFile, points, proj, setup, datum))
|
||||
return;
|
||||
} else if (suffix =="map") {
|
||||
QFile mapFile(fileName);
|
||||
if (!parseMapFile(mapFile, points, proj, setup, datum))
|
||||
return;
|
||||
} else {
|
||||
_errorString = "Not a map file";
|
||||
return;
|
||||
}
|
||||
|
||||
if (!createProjection(datum, proj, setup, points))
|
||||
return;
|
||||
@ -471,16 +456,17 @@ OfflineMap::OfflineMap(const QString &path, QObject *parent) : Map(parent)
|
||||
return;
|
||||
if (!getTileInfo(_tar.files()))
|
||||
return;
|
||||
_imgPath = QString();
|
||||
} else {
|
||||
QDir set(fi.absoluteFilePath() + "/" + "set");
|
||||
QDir set(fi.absolutePath() + "/" + "set");
|
||||
if (set.exists()) {
|
||||
if (!totalSizeSet())
|
||||
return;
|
||||
if (!getTileInfo(set.entryList(), set.canonicalPath()))
|
||||
if (!getTileInfo(set.entryList(), set.absolutePath()))
|
||||
return;
|
||||
_imgPath = QString();
|
||||
} else {
|
||||
if (!getImageInfo(fi.absoluteFilePath()))
|
||||
if (!getImageInfo(fi.absolutePath()))
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -488,36 +474,31 @@ OfflineMap::OfflineMap(const QString &path, QObject *parent) : Map(parent)
|
||||
_valid = true;
|
||||
}
|
||||
|
||||
OfflineMap::OfflineMap(Tar &tar, const QString &path, QObject *parent)
|
||||
OfflineMap::OfflineMap(const QString &fileName, Tar &tar, QObject *parent)
|
||||
: Map(parent)
|
||||
{
|
||||
int errorLine = -2;
|
||||
QList<ReferencePoint> points;
|
||||
QString proj, datum;
|
||||
ProjectionSetup setup;
|
||||
|
||||
QFileInfo fi(fileName);
|
||||
|
||||
_valid = false;
|
||||
_img = 0;
|
||||
_projection = 0;
|
||||
|
||||
QFileInfo fi(path);
|
||||
_name = fi.fileName();
|
||||
|
||||
QFileInfo li(fi.absoluteDir().dirName());
|
||||
QString prefix = li.fileName() + "/" + fi.fileName() + "/";
|
||||
QStringList tarFiles = tar.files();
|
||||
for (int j = 0; j < tarFiles.size(); j++) {
|
||||
if (tarFiles.at(j).startsWith(prefix)) {
|
||||
QByteArray ba = tar.file(tarFiles.at(j));
|
||||
QBuffer buffer(&ba);
|
||||
errorLine = parseMapFile(buffer, points, proj, setup, datum);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!mapLoaded(errorLine))
|
||||
QFileInfo map(fi.absolutePath());
|
||||
QFileInfo layer(map.absolutePath());
|
||||
QString mapFile = layer.fileName() + "/" + map.fileName() + "/"
|
||||
+ fi.fileName();
|
||||
QByteArray ba = tar.file(mapFile);
|
||||
if (ba.isNull()) {
|
||||
_errorString = "Map file not found";
|
||||
return;
|
||||
}
|
||||
QBuffer buffer(&ba);
|
||||
|
||||
if (!parseMapFile(buffer, points, proj, setup, datum))
|
||||
return;
|
||||
if (!createProjection(datum, proj, setup, points))
|
||||
return;
|
||||
if (!totalSizeSet())
|
||||
@ -526,14 +507,8 @@ OfflineMap::OfflineMap(Tar &tar, const QString &path, QObject *parent)
|
||||
return;
|
||||
computeResolution(points);
|
||||
|
||||
QDir dir(path);
|
||||
QFileInfoList mapFiles = dir.entryInfoList(QDir::Files);
|
||||
for (int i = 0; i < mapFiles.count(); i++) {
|
||||
const QString &fileName = mapFiles.at(i).absoluteFilePath();
|
||||
if (fileName.endsWith(".tar"))
|
||||
_tarPath = fileName;
|
||||
}
|
||||
|
||||
_tarPath = fi.absolutePath() + "/" + fi.completeBaseName() + ".tar";
|
||||
_imgPath = QString();
|
||||
_valid = true;
|
||||
}
|
||||
@ -550,11 +525,11 @@ void OfflineMap::load()
|
||||
{
|
||||
if (!_tarPath.isNull() && !_tileSize.isValid()) {
|
||||
if (!_tar.load(_tarPath)) {
|
||||
qWarning("%s: %s: error loading tar file", qPrintable(_name),
|
||||
qPrintable(_tarPath));
|
||||
qWarning("%s: error loading tar file", qPrintable(_tarPath));
|
||||
return;
|
||||
}
|
||||
getTileInfo(_tar.files());
|
||||
if (!getTileInfo(_tar.files()))
|
||||
qWarning("%s: %s", qPrintable(_tarPath), qPrintable(_errorString));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -17,8 +17,8 @@ class OfflineMap : public Map
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
OfflineMap(const QString &path, QObject *parent = 0);
|
||||
OfflineMap(Tar &tar, const QString &path, QObject *parent = 0);
|
||||
OfflineMap(const QString &fileName, QObject *parent = 0);
|
||||
OfflineMap(const QString &fileName, Tar &tar, QObject *parent = 0);
|
||||
~OfflineMap();
|
||||
|
||||
const QString &name() const {return _name;}
|
||||
@ -41,7 +41,8 @@ public:
|
||||
void load();
|
||||
void unload();
|
||||
|
||||
bool isValid() {return _valid;}
|
||||
bool isValid() const {return _valid;}
|
||||
const QString &errorString() const {return _errorString;}
|
||||
|
||||
QPointF ll2pp(const Coordinates &c) const
|
||||
{return _projection->ll2xy(c);}
|
||||
@ -68,9 +69,10 @@ private:
|
||||
int zone;
|
||||
} ProjectionSetup;
|
||||
|
||||
int parseMapFile(QIODevice &device, QList<ReferencePoint> &points,
|
||||
int parse(QIODevice &device, QList<ReferencePoint> &points,
|
||||
QString &projection, ProjectionSetup &setup, QString &datum);
|
||||
bool parseMapFile(QIODevice &device, QList<ReferencePoint> &points,
|
||||
QString &projection, ProjectionSetup &setup, QString &datum);
|
||||
bool mapLoaded(int res);
|
||||
bool totalSizeSet();
|
||||
bool createProjection(const QString &datum, const QString &projection,
|
||||
const ProjectionSetup &setup, QList<ReferencePoint> &points);
|
||||
@ -84,6 +86,9 @@ private:
|
||||
void drawImage(QPainter *painter, const QRectF &rect);
|
||||
|
||||
QString _name;
|
||||
bool _valid;
|
||||
QString _errorString;
|
||||
|
||||
QSize _size;
|
||||
Projection *_projection;
|
||||
QTransform _transform, _inverted;
|
||||
@ -96,8 +101,6 @@ private:
|
||||
QString _imgPath;
|
||||
QSize _tileSize;
|
||||
QString _tileName;
|
||||
|
||||
bool _valid;
|
||||
};
|
||||
|
||||
#endif // OFFLINEMAP_H
|
||||
|
Reference in New Issue
Block a user