1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-07-06 07:32:51 +02:00

Compare commits

..

30 Commits
4.10 ... 4.13

Author SHA1 Message Date
b14eeb58ab Fixed scale size in hi-res prints 2017-08-31 16:28:37 +02:00
8e932b966c Fixed msvc warning 2017-08-31 15:32:44 +02:00
35818ce16e Removed obsolete size guard 2017-08-31 08:10:09 +02:00
6ef7537dff Added some more paper sizes 2017-08-31 07:57:46 +02:00
abbb823890 Removed DPI dependency in print font size computation 2017-08-31 00:07:29 +02:00
0a4f8a46d4 Update gpxsee_sv.ts (#31)
* Update gpxsee_sv.ts

* Update gpxsee_sv.ts

Sorry, missed 2 strings.
2017-08-30 21:59:14 +02:00
fd2823c703 Version++ 2017-08-30 13:59:22 +02:00
d16b61051f Localization update 2017-08-30 13:56:23 +02:00
e69f17aad5 Print font size id now appropriate to the page size 2017-08-30 13:09:54 +02:00
33b1e179d3 Use the correct DPI value for zooming 2017-08-29 15:31:12 +02:00
5efb9f8a4e Added resolution setting to export dialogue. 2017-08-28 17:48:46 +02:00
ebf39f11bd Added support for hi-resolution printing 2017-08-28 15:25:45 +02:00
8b7422b70a Code cleanup 2017-08-27 12:19:33 +02:00
ef3da2e156 Removed obsolete Windows XP bug workaround 2017-08-24 21:04:01 +02:00
6e13c2b704 Translations update 2017-08-24 19:40:52 +02:00
f3e4719439 Added map opacity (brightness) settings 2017-08-24 17:29:59 +02:00
7b6789e78d Version++ 2017-08-23 15:42:00 +02:00
95442461fc Added 4UMaps to map sources 2017-08-23 15:41:23 +02:00
729cbd641c Added support for the VICGRID and VICGRID94 projections 2017-08-23 10:46:28 +02:00
2e2dad8d04 Fixed broken xy2ll computation on southern hemispheres 2017-08-23 10:45:23 +02:00
4e3b6c2eb2 Added missing error check 2017-08-22 23:14:32 +02:00
6430933a96 Use the (incorrect) scale factor of 1 in France zone projections like OziExplorer does 2017-08-22 22:59:59 +02:00
3e14d4afda Added France Zone I-IV projections support 2017-08-22 19:03:35 +02:00
ebb30a3fca Made OZF3 files parsing more robust. 2017-08-22 15:57:37 +02:00
bd20d40ba7 Fixed content margin computation.
Code cleanup.
2017-08-20 10:49:58 +02:00
77823fba14 Added missing newlines 2017-08-15 15:58:23 +02:00
dcc5cbe9bc Added appveyor build config 2017-08-15 15:49:28 +02:00
cd3c99b065 Added QT4 Travis CI build config 2017-08-15 15:42:47 +02:00
83189a4e65 Version++ 2017-08-15 15:14:44 +02:00
797fd7f02b Fixed QT4 build 2017-08-15 15:13:34 +02:00
40 changed files with 780 additions and 385 deletions

52
.appveyor.yml Normal file
View File

@ -0,0 +1,52 @@
version: 4.13.{build}
configuration: Release
platform: Any CPU
environment:
NSISDIR: C:\Program Files (x86)\NSIS
matrix:
- QTDIR: C:\Qt\5.9\msvc2015
PLATFORM: x86
NSI: gpxsee.nsi
OPENSSLDIR: C:\OpenSSL-Win32\bin
- QTDIR: C:\Qt\5.9\msvc2015_64
PLATFORM: x86_amd64
NSI: gpxsee64.nsi
OPENSSLDIR: C:\OpenSSL-Win64\bin
install:
- cmd: >-
set PATH=%QTDIR%\bin;%NSISDIR%;%PATH%
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM%
build_script:
- cmd: >-
lrelease gpxsee.pro
qmake gpxsee.pro
nmake release
md installer
copy release\GPXSee.exe installer
windeployqt --no-svg --release installer\GPXSee.exe
copy pkg\%NSI% installer
copy pkg\datums.csv installer
copy pkg\ellipsoids.csv installer
copy pkg\maps.txt installer
copy licence.txt installer
copy %OPENSSLDIR%\libeay32.dll installer
copy %OPENSSLDIR%\ssleay32.dll installer
makensis.exe installer\%NSI%
artifacts:
- path: installer\GPXSee-*.exe

9
.travis.yml Normal file
View File

@ -0,0 +1,9 @@
language: c++
install:
- sudo apt-get install libqt4-dev
script:
- lrelease gpxsee.pro
- qmake gpxsee.pro
- make

View File

@ -1,5 +1,5 @@
TARGET = GPXSee TARGET = GPXSee
VERSION = 4.10 VERSION = 4.13
QT += core \ QT += core \
gui \ gui \
network network
@ -96,7 +96,8 @@ HEADERS += src/config.h \
src/albersequal.h \ src/albersequal.h \
src/oddspinbox.h \ src/oddspinbox.h \
src/rectc.h \ src/rectc.h \
src/searchpointer.h src/searchpointer.h \
src/percentslider.h
SOURCES += src/main.cpp \ SOURCES += src/main.cpp \
src/gui.cpp \ src/gui.cpp \
src/poi.cpp \ src/poi.cpp \
@ -165,7 +166,8 @@ SOURCES += src/main.cpp \
src/maplist.cpp \ src/maplist.cpp \
src/albersequal.cpp \ src/albersequal.cpp \
src/oddspinbox.cpp \ src/oddspinbox.cpp \
src/rectc.cpp src/rectc.cpp \
src/percentslider.cpp
RESOURCES += gpxsee.qrc RESOURCES += gpxsee.qrc
TRANSLATIONS = lang/gpxsee_cs.ts \ TRANSLATIONS = lang/gpxsee_cs.ts \
lang/gpxsee_sv.ts \ lang/gpxsee_sv.ts \

View File

@ -115,7 +115,7 @@
<context> <context>
<name>ExportDialog</name> <name>ExportDialog</name>
<message> <message>
<location filename="../src/exportdialog.cpp" line="120"/> <location filename="../src/exportdialog.cpp" line="128"/>
<source>Export to PDF</source> <source>Export to PDF</source>
<translation>Exportovat do PDF</translation> <translation>Exportovat do PDF</translation>
</message> </message>
@ -125,79 +125,84 @@
<translation>Soubory PDF (*.pdf);;Všechny soubory (*)</translation> <translation>Soubory PDF (*.pdf);;Všechny soubory (*)</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="38"/> <location filename="../src/exportdialog.cpp" line="45"/>
<source>Portrait</source> <source>Portrait</source>
<translation>Na výšku</translation> <translation>Na výšku</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="39"/> <location filename="../src/exportdialog.cpp" line="46"/>
<source>Landscape</source> <source>Landscape</source>
<translation>Na šířku</translation> <translation>Na šířku</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="83"/> <location filename="../src/exportdialog.cpp" line="90"/>
<source>Page size:</source> <source>Page size:</source>
<translation>Velikost stránky:</translation> <translation>Velikost stránky:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="84"/> <location filename="../src/exportdialog.cpp" line="92"/>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientace:</translation> <translation>Orientace:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="80"/> <location filename="../src/exportdialog.cpp" line="87"/>
<source>Page Setup</source> <source>Page Setup</source>
<translation>Nastavení stránky</translation> <translation>Nastavení stránky</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="52"/> <location filename="../src/exportdialog.cpp" line="59"/>
<source>in</source> <source>in</source>
<translation>in</translation> <translation>in</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="52"/> <location filename="../src/exportdialog.cpp" line="59"/>
<source>mm</source> <source>mm</source>
<translation>mm</translation> <translation>mm</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="85"/> <location filename="../src/exportdialog.cpp" line="91"/>
<source>Resolution:</source>
<translation>Rozlišení:</translation>
</message>
<message>
<location filename="../src/exportdialog.cpp" line="93"/>
<source>Margins:</source> <source>Margins:</source>
<translation>Okraje:</translation> <translation>Okraje:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="91"/> <location filename="../src/exportdialog.cpp" line="99"/>
<source>File:</source> <source>File:</source>
<translation>Soubor:</translation> <translation>Soubor:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="98"/> <location filename="../src/exportdialog.cpp" line="106"/>
<source>Output file</source> <source>Output file</source>
<translation>Výstupní soubor</translation> <translation>Výstupní soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="105"/> <location filename="../src/exportdialog.cpp" line="113"/>
<source>Export</source> <source>Export</source>
<translation>Exportovat</translation> <translation>Exportovat</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="127"/> <location filename="../src/exportdialog.cpp" line="135"/>
<location filename="../src/exportdialog.cpp" line="137"/> <location filename="../src/exportdialog.cpp" line="145"/>
<location filename="../src/exportdialog.cpp" line="142"/> <location filename="../src/exportdialog.cpp" line="150"/>
<source>Error</source> <source>Error</source>
<translation>Chyba</translation> <translation>Chyba</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="127"/> <location filename="../src/exportdialog.cpp" line="135"/>
<source>No output file selected.</source> <source>No output file selected.</source>
<translation>Nebyl zvolen žádný výstupní soubor.</translation> <translation>Nebyl zvolen žádný výstupní soubor.</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="137"/> <location filename="../src/exportdialog.cpp" line="145"/>
<source>%1 is a directory.</source> <source>%1 is a directory.</source>
<translation>%1 je adresář.</translation> <translation>%1 je adresář.</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="142"/> <location filename="../src/exportdialog.cpp" line="150"/>
<source>%1 is not writable.</source> <source>%1 is not writable.</source>
<translation>%1 nelze zapsat.</translation> <translation>%1 nelze zapsat.</translation>
</message> </message>
@ -386,7 +391,7 @@
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="443"/> <location filename="../src/gui.cpp" line="443"/>
<location filename="../src/gui.cpp" line="1006"/> <location filename="../src/gui.cpp" line="1009"/>
<source>Moving time</source> <source>Moving time</source>
<translation>Čistý čas</translation> <translation>Čistý čas</translation>
</message> </message>
@ -526,33 +531,33 @@
<translation>Offline mapy jsou načítány při startu aplikace z následujícího adresáře:</translation> <translation>Offline mapy jsou načítány při startu aplikace z následujícího adresáře:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1197"/> <location filename="../src/gui.cpp" line="1202"/>
<source>Open map file</source> <source>Open map file</source>
<translation>Otevřít mapový soubor</translation> <translation>Otevřít mapový soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1233"/> <location filename="../src/gui.cpp" line="1238"/>
<source>No files loaded</source> <source>No files loaded</source>
<translation>Nejsou načteny žádné soubory</translation> <translation>Nejsou načteny žádné soubory</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="992"/>
<location filename="../src/gui.cpp" line="995"/> <location filename="../src/gui.cpp" line="995"/>
<location filename="../src/gui.cpp" line="998"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="984"/> <location filename="../src/gui.cpp" line="987"/>
<source>Routes</source> <source>Routes</source>
<translation>Trasy</translation> <translation>Trasy</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1218"/> <location filename="../src/gui.cpp" line="1223"/>
<source>Error loading map:</source> <source>Error loading map:</source>
<translation>Mapu nelze načíst:</translation> <translation>Mapu nelze načíst:</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/gui.cpp" line="1237"/> <location filename="../src/gui.cpp" line="1242"/>
<source>%n files</source> <source>%n files</source>
<translation> <translation>
<numerusform>%n soubor</numerusform> <numerusform>%n soubor</numerusform>
@ -581,7 +586,7 @@
<translation>Exportovat do PDF...</translation> <translation>Exportovat do PDF...</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="986"/> <location filename="../src/gui.cpp" line="989"/>
<source>Waypoints</source> <source>Waypoints</source>
<translation>Navigační body</translation> <translation>Navigační body</translation>
</message> </message>
@ -642,12 +647,12 @@
<translation>Soubor POI nelze načíst:</translation> <translation>Soubor POI nelze načíst:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="978"/> <location filename="../src/gui.cpp" line="981"/>
<source>Name</source> <source>Name</source>
<translation>Název</translation> <translation>Název</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="982"/> <location filename="../src/gui.cpp" line="985"/>
<source>Tracks</source> <source>Tracks</source>
<translation>Cesty</translation> <translation>Cesty</translation>
</message> </message>
@ -669,14 +674,14 @@
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="412"/> <location filename="../src/gui.cpp" line="412"/>
<location filename="../src/gui.cpp" line="1002"/> <location filename="../src/gui.cpp" line="1005"/>
<source>Distance</source> <source>Distance</source>
<translation>Vzdálenost</translation> <translation>Vzdálenost</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="419"/> <location filename="../src/gui.cpp" line="419"/>
<location filename="../src/gui.cpp" line="543"/> <location filename="../src/gui.cpp" line="543"/>
<location filename="../src/gui.cpp" line="1004"/> <location filename="../src/gui.cpp" line="1007"/>
<source>Time</source> <source>Time</source>
<translation>Čas</translation> <translation>Čas</translation>
</message> </message>
@ -770,256 +775,292 @@
<context> <context>
<name>OptionsDialog</name> <name>OptionsDialog</name>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="36"/> <location filename="../src/optionsdialog.cpp" line="37"/>
<source>Base color:</source> <source>Base color:</source>
<translation>Základní barva:</translation> <translation>Základní barva:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="37"/> <location filename="../src/optionsdialog.cpp" line="38"/>
<source>Palette shift:</source> <source>Palette shift:</source>
<translation>Posun palety:</translation> <translation>Posun palety:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="49"/> <location filename="../src/optionsdialog.cpp" line="76"/>
<source>Track width:</source> <source>Track width:</source>
<translation>Šířka cest:</translation> <translation>Šířka cest:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="50"/> <location filename="../src/optionsdialog.cpp" line="77"/>
<source>Track style:</source> <source>Track style:</source>
<translation>Styl cest:</translation> <translation>Styl cest:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="52"/> <location filename="../src/optionsdialog.cpp" line="79"/>
<source>Tracks</source> <source>Tracks</source>
<translation>Cesty</translation> <translation>Cesty</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="62"/> <location filename="../src/optionsdialog.cpp" line="89"/>
<source>Route width:</source> <source>Route width:</source>
<translation>Šířka tras:</translation> <translation>Šířka tras:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="63"/> <location filename="../src/optionsdialog.cpp" line="90"/>
<source>Route style:</source> <source>Route style:</source>
<translation>Styl tras:</translation> <translation>Styl tras:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="65"/> <location filename="../src/optionsdialog.cpp" line="92"/>
<source>Routes</source> <source>Routes</source>
<translation>Trasy</translation> <translation>Trasy</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="69"/> <location filename="../src/optionsdialog.cpp" line="96"/>
<location filename="../src/optionsdialog.cpp" line="102"/> <location filename="../src/optionsdialog.cpp" line="129"/>
<source>Use anti-aliasing</source> <source>Use anti-aliasing</source>
<translation>Vyhlazovat hrany</translation> <translation>Vyhlazovat hrany</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="100"/> <location filename="../src/optionsdialog.cpp" line="127"/>
<source>Line width:</source> <source>Line width:</source>
<translation>Šířka čar:</translation> <translation>Šířka čar:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="116"/> <location filename="../src/optionsdialog.cpp" line="143"/>
<source>Colors</source> <source>Colors</source>
<translation>Barvy</translation> <translation>Barvy</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="117"/> <location filename="../src/optionsdialog.cpp" line="40"/>
<location filename="../src/optionsdialog.cpp" line="144"/>
<source>Paths</source> <source>Paths</source>
<translation>Trasy</translation> <translation>Trasy</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="118"/> <location filename="../src/optionsdialog.cpp" line="47"/>
<location filename="../src/optionsdialog.cpp" line="278"/> <source>Map opacity:</source>
<translation>Neprůhlednost mapy:</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="49"/>
<source>Map</source>
<translation>Mapa</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="145"/>
<location filename="../src/optionsdialog.cpp" line="336"/>
<source>Graphs</source> <source>Graphs</source>
<translation>Grafy</translation> <translation>Grafy</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="125"/> <location filename="../src/optionsdialog.cpp" line="152"/>
<source>Moving average window size</source> <source>Moving average window size</source>
<translation>Velikost okna klouzavého průměru</translation> <translation>Velikost okna klouzavého průměru</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="144"/> <location filename="../src/optionsdialog.cpp" line="171"/>
<source>Elevation:</source> <source>Elevation:</source>
<translation>Výška:</translation> <translation>Výška:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="145"/> <location filename="../src/optionsdialog.cpp" line="172"/>
<source>Speed:</source> <source>Speed:</source>
<translation>Rychlost:</translation> <translation>Rychlost:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="146"/> <location filename="../src/optionsdialog.cpp" line="173"/>
<source>Heart rate:</source> <source>Heart rate:</source>
<translation>Tep:</translation> <translation>Tep:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="147"/> <location filename="../src/optionsdialog.cpp" line="174"/>
<source>Cadence:</source> <source>Cadence:</source>
<translation>Kadence:</translation> <translation>Kadence:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="148"/> <location filename="../src/optionsdialog.cpp" line="175"/>
<source>Power:</source> <source>Power:</source>
<translation>Výkon:</translation> <translation>Výkon:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="150"/> <location filename="../src/optionsdialog.cpp" line="177"/>
<source>Smoothing</source> <source>Smoothing</source>
<translation>Vyhlazování</translation> <translation>Vyhlazování</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="154"/> <location filename="../src/optionsdialog.cpp" line="181"/>
<source>Eliminate GPS outliers</source> <source>Eliminate GPS outliers</source>
<translation>Odstarnit odlehlé GPS záznamy</translation> <translation>Odstarnit odlehlé GPS záznamy</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="160"/> <location filename="../src/optionsdialog.cpp" line="187"/>
<source>Outlier elimination</source> <source>Outlier elimination</source>
<translation>Odstranění odlehlých hodnot</translation> <translation>Odstranění odlehlých hodnot</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="167"/> <location filename="../src/optionsdialog.cpp" line="194"/>
<source>Smoothing:</source> <source>Smoothing:</source>
<translation>Vyhlazování:</translation> <translation>Vyhlazování:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="190"/> <location filename="../src/optionsdialog.cpp" line="217"/>
<source>mi/h</source> <source>mi/h</source>
<translation>mi/h</translation> <translation>mi/h</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="193"/> <location filename="../src/optionsdialog.cpp" line="220"/>
<source>km/h</source> <source>km/h</source>
<translation>km/h</translation> <translation>km/h</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="197"/> <location filename="../src/optionsdialog.cpp" line="224"/>
<source>s</source> <source>s</source>
<translation>s</translation> <translation>s</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="201"/> <location filename="../src/optionsdialog.cpp" line="228"/>
<source>Minimal speed:</source> <source>Minimal speed:</source>
<translation>Minimální rychlost:</translation> <translation>Minimální rychlost:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="202"/> <location filename="../src/optionsdialog.cpp" line="229"/>
<source>Minimal duration:</source> <source>Minimal duration:</source>
<translation>Minimální doba trvání:</translation> <translation>Minimální doba trvání:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="209"/> <location filename="../src/optionsdialog.cpp" line="236"/>
<source>Filtering</source> <source>Filtering</source>
<translation>Filtrování</translation> <translation>Filtrování</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="210"/> <location filename="../src/optionsdialog.cpp" line="237"/>
<source>Pause detection</source> <source>Pause detection</source>
<translation>Detekce přestávek</translation> <translation>Detekce přestávek</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="222"/> <location filename="../src/optionsdialog.cpp" line="249"/>
<source>mi</source> <source>mi</source>
<translation>mi</translation> <translation>mi</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="225"/> <location filename="../src/optionsdialog.cpp" line="252"/>
<source>km</source> <source>km</source>
<translation>km</translation> <translation>km</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="229"/> <location filename="../src/optionsdialog.cpp" line="256"/>
<source>POI radius:</source> <source>POI radius:</source>
<translation>POI radius:</translation> <translation>POI radius:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="235"/> <location filename="../src/optionsdialog.cpp" line="262"/>
<location filename="../src/optionsdialog.cpp" line="334"/> <location filename="../src/optionsdialog.cpp" line="392"/>
<source>POI</source> <source>POI</source>
<translation>POI</translation> <translation>POI</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="242"/> <location filename="../src/optionsdialog.cpp" line="269"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="270"/>
<source>High-Resolution</source>
<translation>Vysoké rozlišení</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="275"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Oblast tisku přibližně odpovídá zobrazované oblasti. Přiblížení mapy se nemění.</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="277"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Přiblížení mapy bude upraveno tak, aby se celý obsah (trasy/body) vešel do oblasti tisku a rozlišení mapy bylo co nejblíže rozlišení tisku.</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="299"/>
<source>Name</source> <source>Name</source>
<translation>Název</translation> <translation>Název</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="244"/> <location filename="../src/optionsdialog.cpp" line="301"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="246"/> <location filename="../src/optionsdialog.cpp" line="303"/>
<source>Distance</source> <source>Distance</source>
<translation>Vzdálenost</translation> <translation>Vzdálenost</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="248"/> <location filename="../src/optionsdialog.cpp" line="305"/>
<source>Time</source> <source>Time</source>
<translation>Čas</translation> <translation>Čas</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="250"/> <location filename="../src/optionsdialog.cpp" line="307"/>
<source>Moving time</source> <source>Moving time</source>
<translation>Čistý čas</translation> <translation>Čistý čas</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="252"/> <location filename="../src/optionsdialog.cpp" line="309"/>
<source>Item count (&gt;1)</source> <source>Item count (&gt;1)</source>
<translation>Počet objektů (&gt;1)</translation> <translation>Počet objektů (&gt;1)</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="267"/> <location filename="../src/optionsdialog.cpp" line="324"/>
<source>Separate graph page</source> <source>Separate graph page</source>
<translation>Samostatná stránka s grafy</translation> <translation>Samostatná stránka s grafy</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="277"/> <location filename="../src/optionsdialog.cpp" line="334"/>
<source>Print mode</source>
<translation>Režim tisku</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="335"/>
<source>Header</source> <source>Header</source>
<translation>Záhlaví</translation> <translation>Záhlaví</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="285"/> <location filename="../src/optionsdialog.cpp" line="343"/>
<source>Use OpenGL</source> <source>Use OpenGL</source>
<translation>Používat OpenGL</translation> <translation>Používat OpenGL</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="297"/> <location filename="../src/optionsdialog.cpp" line="355"/>
<source>MB</source> <source>MB</source>
<translation>MB</translation> <translation>MB</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="301"/> <location filename="../src/optionsdialog.cpp" line="359"/>
<source>Image cache size:</source> <source>Image cache size:</source>
<translation>Mezipaměť obrázků:</translation> <translation>Mezipaměť obrázků:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="314"/> <location filename="../src/optionsdialog.cpp" line="372"/>
<location filename="../src/optionsdialog.cpp" line="337"/> <location filename="../src/optionsdialog.cpp" line="395"/>
<source>System</source> <source>System</source>
<translation>Systém</translation> <translation>Systém</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="331"/> <location filename="../src/optionsdialog.cpp" line="389"/>
<source>Appearance</source> <source>Appearance</source>
<translation>Vzhled</translation> <translation>Vzhled</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="333"/> <location filename="../src/optionsdialog.cpp" line="391"/>
<source>Data</source> <source>Data</source>
<translation>Data</translation> <translation>Data</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="335"/> <location filename="../src/optionsdialog.cpp" line="393"/>
<source>Print &amp; Export</source> <source>Print &amp; Export</source>
<translation>Tisk a export</translation> <translation>Tisk a export</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="364"/> <location filename="../src/optionsdialog.cpp" line="422"/>
<source>Options</source> <source>Options</source>
<translation>Nastavení</translation> <translation>Nastavení</translation>
</message> </message>

View File

@ -115,7 +115,7 @@
<context> <context>
<name>ExportDialog</name> <name>ExportDialog</name>
<message> <message>
<location filename="../src/exportdialog.cpp" line="120"/> <location filename="../src/exportdialog.cpp" line="128"/>
<source>Export to PDF</source> <source>Export to PDF</source>
<translation>PDF Export</translation> <translation>PDF Export</translation>
</message> </message>
@ -125,79 +125,84 @@
<translation>PDF-Dateien (*.pdf);;Alle Dateien (*)</translation> <translation>PDF-Dateien (*.pdf);;Alle Dateien (*)</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="38"/> <location filename="../src/exportdialog.cpp" line="45"/>
<source>Portrait</source> <source>Portrait</source>
<translation>Hochformat</translation> <translation>Hochformat</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="39"/> <location filename="../src/exportdialog.cpp" line="46"/>
<source>Landscape</source> <source>Landscape</source>
<translation>Querformat</translation> <translation>Querformat</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="83"/> <location filename="../src/exportdialog.cpp" line="90"/>
<source>Page size:</source> <source>Page size:</source>
<translation>Seitengröße:</translation> <translation>Seitengröße:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="84"/> <location filename="../src/exportdialog.cpp" line="92"/>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientierung:</translation> <translation>Orientierung:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="80"/> <location filename="../src/exportdialog.cpp" line="87"/>
<source>Page Setup</source> <source>Page Setup</source>
<translation>Seiten Setup</translation> <translation>Seiten Setup</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="52"/> <location filename="../src/exportdialog.cpp" line="59"/>
<source>in</source> <source>in</source>
<translation>in</translation> <translation>in</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="52"/> <location filename="../src/exportdialog.cpp" line="59"/>
<source>mm</source> <source>mm</source>
<translation>mm</translation> <translation>mm</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="85"/> <location filename="../src/exportdialog.cpp" line="91"/>
<source>Resolution:</source>
<translation>Druckauflösung:</translation>
</message>
<message>
<location filename="../src/exportdialog.cpp" line="93"/>
<source>Margins:</source> <source>Margins:</source>
<translation>Ränder:</translation> <translation>Ränder:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="91"/> <location filename="../src/exportdialog.cpp" line="99"/>
<source>File:</source> <source>File:</source>
<translation>Ausgabedatei:</translation> <translation>Ausgabedatei:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="98"/> <location filename="../src/exportdialog.cpp" line="106"/>
<source>Output file</source> <source>Output file</source>
<translation>Ausgabedatei</translation> <translation>Ausgabedatei</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="105"/> <location filename="../src/exportdialog.cpp" line="113"/>
<source>Export</source> <source>Export</source>
<translation>Export</translation> <translation>Export</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="127"/> <location filename="../src/exportdialog.cpp" line="135"/>
<location filename="../src/exportdialog.cpp" line="137"/> <location filename="../src/exportdialog.cpp" line="145"/>
<location filename="../src/exportdialog.cpp" line="142"/> <location filename="../src/exportdialog.cpp" line="150"/>
<source>Error</source> <source>Error</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="127"/> <location filename="../src/exportdialog.cpp" line="135"/>
<source>No output file selected.</source> <source>No output file selected.</source>
<translation>Keine Ausgabedatei ausgewählt.</translation> <translation>Keine Ausgabedatei ausgewählt.</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="137"/> <location filename="../src/exportdialog.cpp" line="145"/>
<source>%1 is a directory.</source> <source>%1 is a directory.</source>
<translation>%1 ist ein Verzeichniss.</translation> <translation>%1 ist ein Verzeichniss.</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="142"/> <location filename="../src/exportdialog.cpp" line="150"/>
<source>%1 is not writable.</source> <source>%1 is not writable.</source>
<translation>%1 ist nich schreibbar.</translation> <translation>%1 ist nich schreibbar.</translation>
</message> </message>
@ -386,7 +391,7 @@
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="443"/> <location filename="../src/gui.cpp" line="443"/>
<location filename="../src/gui.cpp" line="1006"/> <location filename="../src/gui.cpp" line="1009"/>
<source>Moving time</source> <source>Moving time</source>
<translation>Bewegungszeit</translation> <translation>Bewegungszeit</translation>
</message> </message>
@ -531,22 +536,22 @@
<translation>Offlinekarten werden zu Programmstart aus dem folgenden Verzeichnis geladen:</translation> <translation>Offlinekarten werden zu Programmstart aus dem folgenden Verzeichnis geladen:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1197"/> <location filename="../src/gui.cpp" line="1202"/>
<source>Open map file</source> <source>Open map file</source>
<translation>Karte Datei öffnen</translation> <translation>Karte Datei öffnen</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1218"/> <location filename="../src/gui.cpp" line="1223"/>
<source>Error loading map:</source> <source>Error loading map:</source>
<translation>Fehler beim Laden der Karte-Datei:</translation> <translation>Fehler beim Laden der Karte-Datei:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1233"/> <location filename="../src/gui.cpp" line="1238"/>
<source>No files loaded</source> <source>No files loaded</source>
<translation>Keine Dateien geladen</translation> <translation>Keine Dateien geladen</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/gui.cpp" line="1237"/> <location filename="../src/gui.cpp" line="1242"/>
<source>%n files</source> <source>%n files</source>
<translation> <translation>
<numerusform>%n Datei</numerusform> <numerusform>%n Datei</numerusform>
@ -554,13 +559,13 @@
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="992"/>
<location filename="../src/gui.cpp" line="995"/> <location filename="../src/gui.cpp" line="995"/>
<location filename="../src/gui.cpp" line="998"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="984"/> <location filename="../src/gui.cpp" line="987"/>
<source>Routes</source> <source>Routes</source>
<translation>Routen</translation> <translation>Routen</translation>
</message> </message>
@ -585,7 +590,7 @@
<translation>Als PDF exportieren...</translation> <translation>Als PDF exportieren...</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="986"/> <location filename="../src/gui.cpp" line="989"/>
<source>Waypoints</source> <source>Waypoints</source>
<translation>Wegpunkte</translation> <translation>Wegpunkte</translation>
</message> </message>
@ -641,12 +646,12 @@
<translation>Fehler beim Laden der POI-Datei:</translation> <translation>Fehler beim Laden der POI-Datei:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="978"/> <location filename="../src/gui.cpp" line="981"/>
<source>Name</source> <source>Name</source>
<translation>Name</translation> <translation>Name</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="982"/> <location filename="../src/gui.cpp" line="985"/>
<source>Tracks</source> <source>Tracks</source>
<translation>Strecken</translation> <translation>Strecken</translation>
</message> </message>
@ -668,14 +673,14 @@
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="412"/> <location filename="../src/gui.cpp" line="412"/>
<location filename="../src/gui.cpp" line="1002"/> <location filename="../src/gui.cpp" line="1005"/>
<source>Distance</source> <source>Distance</source>
<translation>Distanz</translation> <translation>Distanz</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="419"/> <location filename="../src/gui.cpp" line="419"/>
<location filename="../src/gui.cpp" line="543"/> <location filename="../src/gui.cpp" line="543"/>
<location filename="../src/gui.cpp" line="1004"/> <location filename="../src/gui.cpp" line="1007"/>
<source>Time</source> <source>Time</source>
<translation>Zeit</translation> <translation>Zeit</translation>
</message> </message>
@ -763,262 +768,298 @@
<message> <message>
<location filename="../src/maplist.cpp" line="128"/> <location filename="../src/maplist.cpp" line="128"/>
<source>URL list files (*.txt)</source> <source>URL list files (*.txt)</source>
<translation type="unfinished"></translation> <translation>URL-Liste Dateien (*.txt)</translation>
</message> </message>
</context> </context>
<context> <context>
<name>OptionsDialog</name> <name>OptionsDialog</name>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="36"/> <location filename="../src/optionsdialog.cpp" line="37"/>
<source>Base color:</source> <source>Base color:</source>
<translation>Grundfarbe:</translation> <translation>Grundfarbe:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="37"/> <location filename="../src/optionsdialog.cpp" line="38"/>
<source>Palette shift:</source> <source>Palette shift:</source>
<translation>Palettenverschiebung:</translation> <translation>Palettenverschiebung:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="49"/> <location filename="../src/optionsdialog.cpp" line="76"/>
<source>Track width:</source> <source>Track width:</source>
<translation>Streckenbreite:</translation> <translation>Streckenbreite:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="50"/> <location filename="../src/optionsdialog.cpp" line="77"/>
<source>Track style:</source> <source>Track style:</source>
<translation>Streckenstil:</translation> <translation>Streckenstil:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="52"/> <location filename="../src/optionsdialog.cpp" line="79"/>
<source>Tracks</source> <source>Tracks</source>
<translation>Strecken</translation> <translation>Strecken</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="62"/> <location filename="../src/optionsdialog.cpp" line="89"/>
<source>Route width:</source> <source>Route width:</source>
<translation>Routenbreite:</translation> <translation>Routenbreite:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="63"/> <location filename="../src/optionsdialog.cpp" line="90"/>
<source>Route style:</source> <source>Route style:</source>
<translation>Routenstil:</translation> <translation>Routenstil:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="65"/> <location filename="../src/optionsdialog.cpp" line="92"/>
<source>Routes</source> <source>Routes</source>
<translation>Routen</translation> <translation>Routen</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="69"/> <location filename="../src/optionsdialog.cpp" line="96"/>
<location filename="../src/optionsdialog.cpp" line="102"/> <location filename="../src/optionsdialog.cpp" line="129"/>
<source>Use anti-aliasing</source> <source>Use anti-aliasing</source>
<translation>Anti-Aliasing verwenden</translation> <translation>Anti-Aliasing verwenden</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="100"/> <location filename="../src/optionsdialog.cpp" line="127"/>
<source>Line width:</source> <source>Line width:</source>
<translation>Linienbreite:</translation> <translation>Linienbreite:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="116"/> <location filename="../src/optionsdialog.cpp" line="143"/>
<source>Colors</source> <source>Colors</source>
<translation>Farben</translation> <translation>Farben</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="117"/> <location filename="../src/optionsdialog.cpp" line="40"/>
<location filename="../src/optionsdialog.cpp" line="144"/>
<source>Paths</source> <source>Paths</source>
<translation>Pfade</translation> <translation>Pfade</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="118"/> <location filename="../src/optionsdialog.cpp" line="47"/>
<location filename="../src/optionsdialog.cpp" line="278"/> <source>Map opacity:</source>
<translation>Karte Deckkraft:</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="49"/>
<source>Map</source>
<translation>Karte</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="145"/>
<location filename="../src/optionsdialog.cpp" line="336"/>
<source>Graphs</source> <source>Graphs</source>
<translation>Graphen</translation> <translation>Graphen</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="125"/> <location filename="../src/optionsdialog.cpp" line="152"/>
<source>Moving average window size</source> <source>Moving average window size</source>
<translation>Fensterbreite des gleitenden Mittelwerts</translation> <translation>Fensterbreite des gleitenden Mittelwerts</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="144"/> <location filename="../src/optionsdialog.cpp" line="171"/>
<source>Elevation:</source> <source>Elevation:</source>
<translation>Höhe:</translation> <translation>Höhe:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="145"/> <location filename="../src/optionsdialog.cpp" line="172"/>
<source>Speed:</source> <source>Speed:</source>
<translation>Geschwindigkeit:</translation> <translation>Geschwindigkeit:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="146"/> <location filename="../src/optionsdialog.cpp" line="173"/>
<source>Heart rate:</source> <source>Heart rate:</source>
<translation>Herzfrequenz:</translation> <translation>Herzfrequenz:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="147"/> <location filename="../src/optionsdialog.cpp" line="174"/>
<source>Cadence:</source> <source>Cadence:</source>
<translation>Frequenz:</translation> <translation>Frequenz:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="148"/> <location filename="../src/optionsdialog.cpp" line="175"/>
<source>Power:</source> <source>Power:</source>
<translation>Leistung:</translation> <translation>Leistung:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="150"/> <location filename="../src/optionsdialog.cpp" line="177"/>
<source>Smoothing</source> <source>Smoothing</source>
<translation>Glätten</translation> <translation>Glätten</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="154"/> <location filename="../src/optionsdialog.cpp" line="181"/>
<source>Eliminate GPS outliers</source> <source>Eliminate GPS outliers</source>
<translation>GPS Ausreißer entfernen</translation> <translation>GPS Ausreißer entfernen</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="160"/> <location filename="../src/optionsdialog.cpp" line="187"/>
<source>Outlier elimination</source> <source>Outlier elimination</source>
<translation>Ausreißer Entfernung</translation> <translation>Ausreißer Entfernung</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="167"/> <location filename="../src/optionsdialog.cpp" line="194"/>
<source>Smoothing:</source> <source>Smoothing:</source>
<translation>Glätten:</translation> <translation>Glätten:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="190"/> <location filename="../src/optionsdialog.cpp" line="217"/>
<source>mi/h</source> <source>mi/h</source>
<translation>mi/h</translation> <translation>mi/h</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="193"/> <location filename="../src/optionsdialog.cpp" line="220"/>
<source>km/h</source> <source>km/h</source>
<translation>km/h</translation> <translation>km/h</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="197"/> <location filename="../src/optionsdialog.cpp" line="224"/>
<source>s</source> <source>s</source>
<translation>sek</translation> <translation>sek</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="201"/> <location filename="../src/optionsdialog.cpp" line="228"/>
<source>Minimal speed:</source> <source>Minimal speed:</source>
<translation>Minimale Geschwindigkeit:</translation> <translation>Minimale Geschwindigkeit:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="202"/> <location filename="../src/optionsdialog.cpp" line="229"/>
<source>Minimal duration:</source> <source>Minimal duration:</source>
<translation>Minimale Dauer:</translation> <translation>Minimale Dauer:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="209"/> <location filename="../src/optionsdialog.cpp" line="236"/>
<source>Filtering</source> <source>Filtering</source>
<translation>Datenfilterung</translation> <translation>Datenfilterung</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="210"/> <location filename="../src/optionsdialog.cpp" line="237"/>
<source>Pause detection</source> <source>Pause detection</source>
<translation>Pausenerkennung</translation> <translation>Pausenerkennung</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="222"/> <location filename="../src/optionsdialog.cpp" line="249"/>
<source>mi</source> <source>mi</source>
<translation>mi</translation> <translation>mi</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="225"/> <location filename="../src/optionsdialog.cpp" line="252"/>
<source>km</source> <source>km</source>
<translation>km</translation> <translation>km</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="229"/> <location filename="../src/optionsdialog.cpp" line="256"/>
<source>POI radius:</source> <source>POI radius:</source>
<translation>POI-Radius:</translation> <translation>POI-Radius:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="235"/> <location filename="../src/optionsdialog.cpp" line="262"/>
<location filename="../src/optionsdialog.cpp" line="334"/> <location filename="../src/optionsdialog.cpp" line="392"/>
<source>POI</source> <source>POI</source>
<translation>POI</translation> <translation>POI</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="242"/> <location filename="../src/optionsdialog.cpp" line="269"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="270"/>
<source>High-Resolution</source>
<translation>Hohe Auflösung</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="275"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Der Druckbereich ist circa der Anzeigebereich. Das Karten-Zoom ändert sich nicht.</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="277"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Das Karten-Zoom ändert sich so, dass der ganze Inhalt (Strecken/Wegpunkte) in den Druckbereich passen und die Kartenauflösung so nah wie möglich an der Druckauflösung ist.</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="299"/>
<source>Name</source> <source>Name</source>
<translation>Name</translation> <translation>Name</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="244"/> <location filename="../src/optionsdialog.cpp" line="301"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="246"/> <location filename="../src/optionsdialog.cpp" line="303"/>
<source>Distance</source> <source>Distance</source>
<translation>Distanz</translation> <translation>Distanz</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="248"/> <location filename="../src/optionsdialog.cpp" line="305"/>
<source>Time</source> <source>Time</source>
<translation>Zeit</translation> <translation>Zeit</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="250"/> <location filename="../src/optionsdialog.cpp" line="307"/>
<source>Moving time</source> <source>Moving time</source>
<translation>Bewegungszeit</translation> <translation>Bewegungszeit</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="252"/> <location filename="../src/optionsdialog.cpp" line="309"/>
<source>Item count (&gt;1)</source> <source>Item count (&gt;1)</source>
<translation>Elementanzahl (&gt;1)</translation> <translation>Elementanzahl (&gt;1)</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="267"/> <location filename="../src/optionsdialog.cpp" line="324"/>
<source>Separate graph page</source> <source>Separate graph page</source>
<translation>Separate Seite für Graphen</translation> <translation>Separate Seite für Graphen</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="277"/> <location filename="../src/optionsdialog.cpp" line="334"/>
<source>Print mode</source>
<translation>Druckmodus</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="335"/>
<source>Header</source> <source>Header</source>
<translation>Kopfzeile</translation> <translation>Kopfzeile</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="285"/> <location filename="../src/optionsdialog.cpp" line="343"/>
<source>Use OpenGL</source> <source>Use OpenGL</source>
<translation>OpenGL verwenden</translation> <translation>OpenGL verwenden</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="297"/> <location filename="../src/optionsdialog.cpp" line="355"/>
<source>MB</source> <source>MB</source>
<translation>MB</translation> <translation>MB</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="301"/> <location filename="../src/optionsdialog.cpp" line="359"/>
<source>Image cache size:</source> <source>Image cache size:</source>
<translation>Bild-Cache größe:</translation> <translation>Bild-Cache größe:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="314"/> <location filename="../src/optionsdialog.cpp" line="372"/>
<location filename="../src/optionsdialog.cpp" line="337"/> <location filename="../src/optionsdialog.cpp" line="395"/>
<source>System</source> <source>System</source>
<translation>System</translation> <translation>System</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="331"/> <location filename="../src/optionsdialog.cpp" line="389"/>
<source>Appearance</source> <source>Appearance</source>
<translation>Erscheinungsbild</translation> <translation>Erscheinungsbild</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="333"/> <location filename="../src/optionsdialog.cpp" line="391"/>
<source>Data</source> <source>Data</source>
<translation>Daten</translation> <translation>Daten</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="335"/> <location filename="../src/optionsdialog.cpp" line="393"/>
<source>Print &amp; Export</source> <source>Print &amp; Export</source>
<translation>Druck &amp; Export</translation> <translation>Druck &amp; Export</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="364"/> <location filename="../src/optionsdialog.cpp" line="422"/>
<source>Options</source> <source>Options</source>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>

View File

@ -115,7 +115,7 @@
<context> <context>
<name>ExportDialog</name> <name>ExportDialog</name>
<message> <message>
<location filename="../src/exportdialog.cpp" line="120"/> <location filename="../src/exportdialog.cpp" line="128"/>
<source>Export to PDF</source> <source>Export to PDF</source>
<translation>Exportera till PDF</translation> <translation>Exportera till PDF</translation>
</message> </message>
@ -125,79 +125,84 @@
<translation>PDF-filer (*.pdf);;Alla filer (*)</translation> <translation>PDF-filer (*.pdf);;Alla filer (*)</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="38"/> <location filename="../src/exportdialog.cpp" line="45"/>
<source>Portrait</source> <source>Portrait</source>
<translation>Stående</translation> <translation>Stående</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="39"/> <location filename="../src/exportdialog.cpp" line="46"/>
<source>Landscape</source> <source>Landscape</source>
<translation>Liggande</translation> <translation>Liggande</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="83"/> <location filename="../src/exportdialog.cpp" line="90"/>
<source>Page size:</source> <source>Page size:</source>
<translation>Sidstorlek:</translation> <translation>Sidstorlek:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="84"/> <location filename="../src/exportdialog.cpp" line="92"/>
<source>Orientation:</source> <source>Orientation:</source>
<translation>Orientering:</translation> <translation>Orientering:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="80"/> <location filename="../src/exportdialog.cpp" line="87"/>
<source>Page Setup</source> <source>Page Setup</source>
<translation>Sidinställning</translation> <translation>Sidinställning</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="52"/> <location filename="../src/exportdialog.cpp" line="59"/>
<source>in</source> <source>in</source>
<translation>i</translation> <translation>i</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="52"/> <location filename="../src/exportdialog.cpp" line="59"/>
<source>mm</source> <source>mm</source>
<translation>mm</translation> <translation>mm</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="85"/> <location filename="../src/exportdialog.cpp" line="91"/>
<source>Resolution:</source>
<translation>Upplösning:</translation>
</message>
<message>
<location filename="../src/exportdialog.cpp" line="93"/>
<source>Margins:</source> <source>Margins:</source>
<translation>Marginaler:</translation> <translation>Marginaler:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="91"/> <location filename="../src/exportdialog.cpp" line="99"/>
<source>File:</source> <source>File:</source>
<translation>Fil:</translation> <translation>Fil:</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="98"/> <location filename="../src/exportdialog.cpp" line="106"/>
<source>Output file</source> <source>Output file</source>
<translation>Utdatafil</translation> <translation>Utdatafil</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="105"/> <location filename="../src/exportdialog.cpp" line="113"/>
<source>Export</source> <source>Export</source>
<translation>Exportera</translation> <translation>Exportera</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="127"/> <location filename="../src/exportdialog.cpp" line="135"/>
<location filename="../src/exportdialog.cpp" line="137"/> <location filename="../src/exportdialog.cpp" line="145"/>
<location filename="../src/exportdialog.cpp" line="142"/> <location filename="../src/exportdialog.cpp" line="150"/>
<source>Error</source> <source>Error</source>
<translation>Fel</translation> <translation>Fel</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="127"/> <location filename="../src/exportdialog.cpp" line="135"/>
<source>No output file selected.</source> <source>No output file selected.</source>
<translation>Ingen utdatafil vald.</translation> <translation>Ingen utdatafil vald.</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="137"/> <location filename="../src/exportdialog.cpp" line="145"/>
<source>%1 is a directory.</source> <source>%1 is a directory.</source>
<translation>%1 är en mapp.</translation> <translation>%1 är en mapp.</translation>
</message> </message>
<message> <message>
<location filename="../src/exportdialog.cpp" line="142"/> <location filename="../src/exportdialog.cpp" line="150"/>
<source>%1 is not writable.</source> <source>%1 is not writable.</source>
<translation>%1 är skrivskyddad.</translation> <translation>%1 är skrivskyddad.</translation>
</message> </message>
@ -386,7 +391,7 @@
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="443"/> <location filename="../src/gui.cpp" line="443"/>
<location filename="../src/gui.cpp" line="1006"/> <location filename="../src/gui.cpp" line="1009"/>
<source>Moving time</source> <source>Moving time</source>
<translation>Förflyttningstid</translation> <translation>Förflyttningstid</translation>
</message> </message>
@ -531,22 +536,22 @@
<translation>Offline-kartor läses in från följande mapp vid programstart:</translation> <translation>Offline-kartor läses in från följande mapp vid programstart:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1197"/> <location filename="../src/gui.cpp" line="1202"/>
<source>Open map file</source> <source>Open map file</source>
<translation>Öppna kartfil</translation> <translation>Öppna kartfil</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1218"/> <location filename="../src/gui.cpp" line="1223"/>
<source>Error loading map:</source> <source>Error loading map:</source>
<translation>Fel vid inläsning av karta:</translation> <translation>Fel vid inläsning av karta:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="1233"/> <location filename="../src/gui.cpp" line="1238"/>
<source>No files loaded</source> <source>No files loaded</source>
<translation>Inga filer inlästa</translation> <translation>Inga filer inlästa</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../src/gui.cpp" line="1237"/> <location filename="../src/gui.cpp" line="1242"/>
<source>%n files</source> <source>%n files</source>
<translation> <translation>
<numerusform>%n filer</numerusform> <numerusform>%n filer</numerusform>
@ -554,13 +559,13 @@
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="992"/>
<location filename="../src/gui.cpp" line="995"/> <location filename="../src/gui.cpp" line="995"/>
<location filename="../src/gui.cpp" line="998"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="984"/> <location filename="../src/gui.cpp" line="987"/>
<source>Routes</source> <source>Routes</source>
<translation>Rutter</translation> <translation>Rutter</translation>
</message> </message>
@ -585,7 +590,7 @@
<translation>Exportera till PDF...</translation> <translation>Exportera till PDF...</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="986"/> <location filename="../src/gui.cpp" line="989"/>
<source>Waypoints</source> <source>Waypoints</source>
<translation>Vägpunkter</translation> <translation>Vägpunkter</translation>
</message> </message>
@ -641,12 +646,12 @@
<translation>Fel vid inläsning av POI-fil:</translation> <translation>Fel vid inläsning av POI-fil:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="978"/> <location filename="../src/gui.cpp" line="981"/>
<source>Name</source> <source>Name</source>
<translation>Namn</translation> <translation>Namn</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="982"/> <location filename="../src/gui.cpp" line="985"/>
<source>Tracks</source> <source>Tracks</source>
<translation>Spår</translation> <translation>Spår</translation>
</message> </message>
@ -668,14 +673,14 @@
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="412"/> <location filename="../src/gui.cpp" line="412"/>
<location filename="../src/gui.cpp" line="1002"/> <location filename="../src/gui.cpp" line="1005"/>
<source>Distance</source> <source>Distance</source>
<translation>Avstånd</translation> <translation>Avstånd</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="419"/> <location filename="../src/gui.cpp" line="419"/>
<location filename="../src/gui.cpp" line="543"/> <location filename="../src/gui.cpp" line="543"/>
<location filename="../src/gui.cpp" line="1004"/> <location filename="../src/gui.cpp" line="1007"/>
<source>Time</source> <source>Time</source>
<translation>Tid</translation> <translation>Tid</translation>
</message> </message>
@ -763,262 +768,298 @@
<message> <message>
<location filename="../src/maplist.cpp" line="128"/> <location filename="../src/maplist.cpp" line="128"/>
<source>URL list files (*.txt)</source> <source>URL list files (*.txt)</source>
<translation type="unfinished"></translation> <translation>URL-listfiler (*.txt)</translation>
</message> </message>
</context> </context>
<context> <context>
<name>OptionsDialog</name> <name>OptionsDialog</name>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="36"/> <location filename="../src/optionsdialog.cpp" line="37"/>
<source>Base color:</source> <source>Base color:</source>
<translation>Basfärg:</translation> <translation>Basfärg:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="37"/> <location filename="../src/optionsdialog.cpp" line="38"/>
<source>Palette shift:</source> <source>Palette shift:</source>
<translation>Palettskiftning:</translation> <translation>Palettskiftning:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="49"/> <location filename="../src/optionsdialog.cpp" line="76"/>
<source>Track width:</source> <source>Track width:</source>
<translation>Spårtjocklek:</translation> <translation>Spårtjocklek:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="50"/> <location filename="../src/optionsdialog.cpp" line="77"/>
<source>Track style:</source> <source>Track style:</source>
<translation>Spårstil:</translation> <translation>Spårstil:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="52"/> <location filename="../src/optionsdialog.cpp" line="79"/>
<source>Tracks</source> <source>Tracks</source>
<translation>Spår</translation> <translation>Spår</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="62"/> <location filename="../src/optionsdialog.cpp" line="89"/>
<source>Route width:</source> <source>Route width:</source>
<translation>Ruttjocklek:</translation> <translation>Ruttjocklek:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="63"/> <location filename="../src/optionsdialog.cpp" line="90"/>
<source>Route style:</source> <source>Route style:</source>
<translation>Ruttstil:</translation> <translation>Ruttstil:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="65"/> <location filename="../src/optionsdialog.cpp" line="92"/>
<source>Routes</source> <source>Routes</source>
<translation>Rutter</translation> <translation>Rutter</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="69"/> <location filename="../src/optionsdialog.cpp" line="96"/>
<location filename="../src/optionsdialog.cpp" line="102"/> <location filename="../src/optionsdialog.cpp" line="129"/>
<source>Use anti-aliasing</source> <source>Use anti-aliasing</source>
<translation>Använd kantutjämning</translation> <translation>Använd kantutjämning</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="100"/> <location filename="../src/optionsdialog.cpp" line="127"/>
<source>Line width:</source> <source>Line width:</source>
<translation>Linjetjocklek:</translation> <translation>Linjetjocklek:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="116"/> <location filename="../src/optionsdialog.cpp" line="143"/>
<source>Colors</source> <source>Colors</source>
<translation>Färger</translation> <translation>Färger</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="117"/> <location filename="../src/optionsdialog.cpp" line="40"/>
<location filename="../src/optionsdialog.cpp" line="144"/>
<source>Paths</source> <source>Paths</source>
<translation>Sökvägar</translation> <translation>Sökvägar</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="118"/> <location filename="../src/optionsdialog.cpp" line="47"/>
<location filename="../src/optionsdialog.cpp" line="278"/> <source>Map opacity:</source>
<translation>Kartopacitet</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="49"/>
<source>Map</source>
<translation>Karta</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="145"/>
<location filename="../src/optionsdialog.cpp" line="336"/>
<source>Graphs</source> <source>Graphs</source>
<translation>Diagram</translation> <translation>Diagram</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="125"/> <location filename="../src/optionsdialog.cpp" line="152"/>
<source>Moving average window size</source> <source>Moving average window size</source>
<translation>Flyttar vanlig fönsterstorlek</translation> <translation>Flyttar vanlig fönsterstorlek</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="144"/> <location filename="../src/optionsdialog.cpp" line="171"/>
<source>Elevation:</source> <source>Elevation:</source>
<translation>Höjd:</translation> <translation>Höjd:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="145"/> <location filename="../src/optionsdialog.cpp" line="172"/>
<source>Speed:</source> <source>Speed:</source>
<translation>Hastighet:</translation> <translation>Hastighet:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="146"/> <location filename="../src/optionsdialog.cpp" line="173"/>
<source>Heart rate:</source> <source>Heart rate:</source>
<translation>Hjärtfrekvens:</translation> <translation>Hjärtfrekvens:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="147"/> <location filename="../src/optionsdialog.cpp" line="174"/>
<source>Cadence:</source> <source>Cadence:</source>
<translation>Stegfrekvens:</translation> <translation>Stegfrekvens:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="148"/> <location filename="../src/optionsdialog.cpp" line="175"/>
<source>Power:</source> <source>Power:</source>
<translation>Kraft:</translation> <translation>Kraft:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="150"/> <location filename="../src/optionsdialog.cpp" line="177"/>
<source>Smoothing</source> <source>Smoothing</source>
<translation>Utjämning</translation> <translation>Utjämning</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="154"/> <location filename="../src/optionsdialog.cpp" line="181"/>
<source>Eliminate GPS outliers</source> <source>Eliminate GPS outliers</source>
<translation>Eliminera GPS-extremvärden</translation> <translation>Eliminera GPS-extremvärden</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="160"/> <location filename="../src/optionsdialog.cpp" line="187"/>
<source>Outlier elimination</source> <source>Outlier elimination</source>
<translation>Extremvärdeseliminering</translation> <translation>Extremvärdeseliminering</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="167"/> <location filename="../src/optionsdialog.cpp" line="194"/>
<source>Smoothing:</source> <source>Smoothing:</source>
<translation>Utjämning:</translation> <translation>Utjämning:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="190"/> <location filename="../src/optionsdialog.cpp" line="217"/>
<source>mi/h</source> <source>mi/h</source>
<translation>mi/h</translation> <translation>mi/h</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="193"/> <location filename="../src/optionsdialog.cpp" line="220"/>
<source>km/h</source> <source>km/h</source>
<translation>km/h</translation> <translation>km/h</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="197"/> <location filename="../src/optionsdialog.cpp" line="224"/>
<source>s</source> <source>s</source>
<translation>sek</translation> <translation>sek</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="201"/> <location filename="../src/optionsdialog.cpp" line="228"/>
<source>Minimal speed:</source> <source>Minimal speed:</source>
<translation>Minsta hastighet:</translation> <translation>Minsta hastighet:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="202"/> <location filename="../src/optionsdialog.cpp" line="229"/>
<source>Minimal duration:</source> <source>Minimal duration:</source>
<translation>Kortast varaktighet:</translation> <translation>Kortast varaktighet:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="209"/> <location filename="../src/optionsdialog.cpp" line="236"/>
<source>Filtering</source> <source>Filtering</source>
<translation>Filtrerar</translation> <translation>Filtrerar</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="210"/> <location filename="../src/optionsdialog.cpp" line="237"/>
<source>Pause detection</source> <source>Pause detection</source>
<translation>Pausa identifiering</translation> <translation>Pausa identifiering</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="222"/> <location filename="../src/optionsdialog.cpp" line="249"/>
<source>mi</source> <source>mi</source>
<translation>mi</translation> <translation>mi</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="225"/> <location filename="../src/optionsdialog.cpp" line="252"/>
<source>km</source> <source>km</source>
<translation>km</translation> <translation>km</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="229"/> <location filename="../src/optionsdialog.cpp" line="256"/>
<source>POI radius:</source> <source>POI radius:</source>
<translation>POI-radie:</translation> <translation>POI-radie:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="235"/> <location filename="../src/optionsdialog.cpp" line="262"/>
<location filename="../src/optionsdialog.cpp" line="334"/> <location filename="../src/optionsdialog.cpp" line="392"/>
<source>POI</source> <source>POI</source>
<translation>POI</translation> <translation>POI</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="242"/> <location filename="../src/optionsdialog.cpp" line="269"/>
<source>WYSIWYG</source>
<translation>WYSIWYG</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="270"/>
<source>High-Resolution</source>
<translation>Högupplösning</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="275"/>
<source>The printed area is approximately the display area. The map zoom level does not change.</source>
<translation>Det utskrivna området är ungefär detsamma som synligt område skärmen. Kartans zoomnivå ändras inte.</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="277"/>
<source>The zoom level will be changed so that the whole content (tracks/waypoints) fits to the printed area and the map resolution is as close as possible to the print resolution.</source>
<translation>Zoomnivån kommer att ändras att hela innehållet (spår/vägpunkter) passar utskriftsområdet och kartresolutionen är nära som möjligt till utskriftsupplösningen.</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="299"/>
<source>Name</source> <source>Name</source>
<translation>Namn</translation> <translation>Namn</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="244"/> <location filename="../src/optionsdialog.cpp" line="301"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="246"/> <location filename="../src/optionsdialog.cpp" line="303"/>
<source>Distance</source> <source>Distance</source>
<translation>Avstånd</translation> <translation>Avstånd</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="248"/> <location filename="../src/optionsdialog.cpp" line="305"/>
<source>Time</source> <source>Time</source>
<translation>Tid</translation> <translation>Tid</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="250"/> <location filename="../src/optionsdialog.cpp" line="307"/>
<source>Moving time</source> <source>Moving time</source>
<translation>Förflyttningstid</translation> <translation>Förflyttningstid</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="252"/> <location filename="../src/optionsdialog.cpp" line="309"/>
<source>Item count (&gt;1)</source> <source>Item count (&gt;1)</source>
<translation>Objektantal (&gt;1)</translation> <translation>Objektantal (&gt;1)</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="267"/> <location filename="../src/optionsdialog.cpp" line="324"/>
<source>Separate graph page</source> <source>Separate graph page</source>
<translation>Separat diagramsida</translation> <translation>Separat diagramsida</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="277"/> <location filename="../src/optionsdialog.cpp" line="334"/>
<source>Print mode</source>
<translation>Utskriftsläge</translation>
</message>
<message>
<location filename="../src/optionsdialog.cpp" line="335"/>
<source>Header</source> <source>Header</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="285"/> <location filename="../src/optionsdialog.cpp" line="343"/>
<source>Use OpenGL</source> <source>Use OpenGL</source>
<translation>Använd OpenGL</translation> <translation>Använd OpenGL</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="297"/> <location filename="../src/optionsdialog.cpp" line="355"/>
<source>MB</source> <source>MB</source>
<translation>MB</translation> <translation>MB</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="301"/> <location filename="../src/optionsdialog.cpp" line="359"/>
<source>Image cache size:</source> <source>Image cache size:</source>
<translation>Cashe-storlek för bilder:</translation> <translation>Cashe-storlek för bilder:</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="314"/> <location filename="../src/optionsdialog.cpp" line="372"/>
<location filename="../src/optionsdialog.cpp" line="337"/> <location filename="../src/optionsdialog.cpp" line="395"/>
<source>System</source> <source>System</source>
<translation>System</translation> <translation>System</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="331"/> <location filename="../src/optionsdialog.cpp" line="389"/>
<source>Appearance</source> <source>Appearance</source>
<translation>Utseende</translation> <translation>Utseende</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="333"/> <location filename="../src/optionsdialog.cpp" line="391"/>
<source>Data</source> <source>Data</source>
<translation>Data</translation> <translation>Data</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="335"/> <location filename="../src/optionsdialog.cpp" line="393"/>
<source>Print &amp; Export</source> <source>Print &amp; Export</source>
<translation>Utskrift &amp; Export</translation> <translation>Utskrift &amp; Export</translation>
</message> </message>
<message> <message>
<location filename="../src/optionsdialog.cpp" line="364"/> <location filename="../src/optionsdialog.cpp" line="422"/>
<source>Options</source> <source>Options</source>
<translation>Alternativ</translation> <translation>Alternativ</translation>
</message> </message>

View File

@ -5,7 +5,7 @@
; The name of the installer ; The name of the installer
Name "GPXSee" Name "GPXSee"
; Program version ; Program version
!define VERSION "4.10" !define VERSION "4.13"
; The file to write ; The file to write
OutFile "GPXSee-${VERSION}.exe" OutFile "GPXSee-${VERSION}.exe"

View File

@ -5,7 +5,7 @@
; The name of the installer ; The name of the installer
Name "GPXSee" Name "GPXSee"
; Program version ; Program version
!define VERSION "4.10" !define VERSION "4.13"
; The file to write ; The file to write
OutFile "GPXSee-${VERSION}_x64.exe" OutFile "GPXSee-${VERSION}_x64.exe"

View File

@ -1,4 +1,5 @@
Open Topo Map https://a.tile.opentopomap.org/$z/$x/$y.png Open Topo Map https://a.tile.opentopomap.org/$z/$x/$y.png
4UMaps http://4umaps.eu/$z/$x/$y.png
Open Street Map http://tile.openstreetmap.org/$z/$x/$y.png Open Street Map http://tile.openstreetmap.org/$z/$x/$y.png
USGS Topo https://navigator.er.usgs.gov/tiles/tcr.cgi/$z/$x/$y.png USGS Topo https://navigator.er.usgs.gov/tiles/tcr.cgi/$z/$x/$y.png
USGS Imagery https://navigator.er.usgs.gov/tiles/aerial_Imagery.cgi/$z/$x/$y USGS Imagery https://navigator.er.usgs.gov/tiles/aerial_Imagery.cgi/$z/$x/$y

View File

@ -303,8 +303,7 @@ void Atlas::draw(QPainter *painter, const QRectF &rect)
{ {
// All in one map // All in one map
for (int i = _zooms.at(_zoom).first; i <= _zooms.at(_zoom).second; i++) { for (int i = _zooms.at(_zoom).first; i <= _zooms.at(_zoom).second; i++) {
QRectF ir = rect.intersected(_bounds.at(i).second); if (_bounds.at(i).second.contains(rect)) {
if (ir == rect) {
draw(painter, rect, i); draw(painter, rect, i);
return; return;
} }

View File

@ -10,8 +10,7 @@
#define APP_HOMEPAGE "http://www.gpxsee.org" #define APP_HOMEPAGE "http://www.gpxsee.org"
#define FONT_FAMILY "Arial" #define FONT_FAMILY "Arial"
#define FONT_SIZE 12 #define FONT_SIZE 12 // px
#define SCREEN_DPI 96.0
#define ELLIPSOID_FILE QString("ellipsoids.csv") #define ELLIPSOID_FILE QString("ellipsoids.csv")
#define DATUM_FILE QString("datums.csv") #define DATUM_FILE QString("datums.csv")

View File

@ -19,11 +19,9 @@ qreal Coordinates::distanceTo(const Coordinates &c) const
QDebug operator<<(QDebug dbg, const Coordinates &coordinates) QDebug operator<<(QDebug dbg, const Coordinates &coordinates)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "Coordinates(" << coordinates.lon() << ", " dbg.nospace() << "Coordinates(" << coordinates.lon() << ", "
<< coordinates.lat() << ")"; << coordinates.lat() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }
QPair<Coordinates, Coordinates> Coordinates::boundingRect(qreal distance) const QPair<Coordinates, Coordinates> Coordinates::boundingRect(qreal distance) const

View File

@ -26,15 +26,28 @@ ExportDialog::ExportDialog(Export *exp, QWidget *parent)
_fileSelect->setFile(_export->fileName); _fileSelect->setFile(_export->fileName);
_paperSize = new QComboBox(); _paperSize = new QComboBox();
_paperSize->addItem("A2", QPrinter::A2);
_paperSize->addItem("A3", QPrinter::A3); _paperSize->addItem("A3", QPrinter::A3);
_paperSize->addItem("A4", QPrinter::A4); _paperSize->addItem("A4", QPrinter::A4);
_paperSize->addItem("A5", QPrinter::A5); _paperSize->addItem("A5", QPrinter::A5);
_paperSize->addItem("A6", QPrinter::A6);
_paperSize->addItem("B3", QPrinter::B3);
_paperSize->addItem("B4", QPrinter::B4);
_paperSize->addItem("B5", QPrinter::B5);
_paperSize->addItem("B6", QPrinter::B6);
_paperSize->addItem("Tabloid", QPrinter::Tabloid); _paperSize->addItem("Tabloid", QPrinter::Tabloid);
_paperSize->addItem("Legal", QPrinter::Legal); _paperSize->addItem("Legal", QPrinter::Legal);
_paperSize->addItem("Letter", QPrinter::Letter); _paperSize->addItem("Letter", QPrinter::Letter);
if ((index = _paperSize->findData(_export->paperSize)) >= 0) if ((index = _paperSize->findData(_export->paperSize)) >= 0)
_paperSize->setCurrentIndex(index); _paperSize->setCurrentIndex(index);
_resolution = new QComboBox();
_resolution->addItem("300 DPI", 300);
_resolution->addItem("600 DPI", 600);
_resolution->addItem("1200 DPI", 1200);
if ((index = _resolution->findData(_export->resolution)) >= 0)
_resolution->setCurrentIndex(index);
_portrait = new QRadioButton(tr("Portrait")); _portrait = new QRadioButton(tr("Portrait"));
_landscape = new QRadioButton(tr("Landscape")); _landscape = new QRadioButton(tr("Landscape"));
QHBoxLayout *orientationLayout = new QHBoxLayout(); QHBoxLayout *orientationLayout = new QHBoxLayout();
@ -81,6 +94,7 @@ ExportDialog::ExportDialog(Export *exp, QWidget *parent)
#endif // Q_OS_MAC #endif // Q_OS_MAC
QFormLayout *pageSetupLayout = new QFormLayout; QFormLayout *pageSetupLayout = new QFormLayout;
pageSetupLayout->addRow(tr("Page size:"), _paperSize); pageSetupLayout->addRow(tr("Page size:"), _paperSize);
pageSetupLayout->addRow(tr("Resolution:"), _resolution);
pageSetupLayout->addRow(tr("Orientation:"), orientationLayout); pageSetupLayout->addRow(tr("Orientation:"), orientationLayout);
pageSetupLayout->addRow(tr("Margins:"), marginsLayout); pageSetupLayout->addRow(tr("Margins:"), marginsLayout);
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
@ -161,9 +175,11 @@ void ExportDialog::accept()
? QPrinter::Portrait : QPrinter::Landscape; ? QPrinter::Portrait : QPrinter::Landscape;
QPrinter::PaperSize paperSize = static_cast<QPrinter::PaperSize> QPrinter::PaperSize paperSize = static_cast<QPrinter::PaperSize>
(_paperSize->itemData(_paperSize->currentIndex()).toInt()); (_paperSize->itemData(_paperSize->currentIndex()).toInt());
int resolution = _resolution->itemData(_resolution->currentIndex()).toInt();
_export->fileName = _fileSelect->file(); _export->fileName = _fileSelect->file();
_export->paperSize = paperSize; _export->paperSize = paperSize;
_export->resolution = resolution;
_export->orientation = orientation; _export->orientation = orientation;
if (_export->units == Imperial) if (_export->units == Imperial)
_export->margins = MarginsF(_leftMargin->value() / MM2IN, _export->margins = MarginsF(_leftMargin->value() / MM2IN,

View File

@ -16,6 +16,7 @@ struct Export {
QPrinter::PaperSize paperSize; QPrinter::PaperSize paperSize;
QPrinter::Orientation orientation; QPrinter::Orientation orientation;
MarginsF margins; MarginsF margins;
int resolution;
Units units; Units units;
}; };
@ -37,6 +38,7 @@ private:
FileSelectWidget *_fileSelect; FileSelectWidget *_fileSelect;
QComboBox *_paperSize; QComboBox *_paperSize;
QComboBox *_resolution;
QRadioButton *_portrait; QRadioButton *_portrait;
QRadioButton *_landscape; QRadioButton *_landscape;
QDoubleSpinBox *_topMargin; QDoubleSpinBox *_topMargin;

View File

@ -2,9 +2,7 @@
QDebug operator<<(QDebug dbg, const GraphPoint &point) QDebug operator<<(QDebug dbg, const GraphPoint &point)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "GraphPoint(" << point.s() << ", " << point.t() << ", " dbg.nospace() << "GraphPoint(" << point.s() << ", " << point.t() << ", "
<< point.y() << ")"; << point.y() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -326,11 +326,9 @@ void GraphView::mousePressEvent(QMouseEvent *e)
QGraphicsView::mousePressEvent(e); QGraphicsView::mousePressEvent(e);
} }
void GraphView::plot(QPainter *painter, const QRectF &target) void GraphView::plot(QPainter *painter, const QRectF &target, qreal scale)
{ {
qreal ratio = painter->paintEngine()->paintDevice()->logicalDpiX() QSizeF canvas = QSizeF(target.width() / scale, target.height() / scale);
/ SCREEN_DPI;
QSizeF canvas = QSizeF(target.width() / ratio, target.height() / ratio);
setUpdatesEnabled(false); setUpdatesEnabled(false);
redraw(canvas); redraw(canvas);

View File

@ -53,7 +53,7 @@ public:
qreal sliderPosition() const {return _sliderPos;} qreal sliderPosition() const {return _sliderPos;}
void setSliderPosition(qreal pos); void setSliderPosition(qreal pos);
void plot(QPainter *painter, const QRectF &target); void plot(QPainter *painter, const QRectF &target, qreal scale);
void useOpenGL(bool use); void useOpenGL(bool use);

View File

@ -854,15 +854,6 @@ void GUI::closePOIFiles()
_poi->clear(); _poi->clear();
} }
void GUI::printFile()
{
QPrinter printer(QPrinter::HighResolution);
QPrintDialog dialog(&printer, this);
if (dialog.exec() == QDialog::Accepted)
plot(&printer);
}
void GUI::openOptions() void GUI::openOptions()
{ {
Options options(_options); Options options(_options);
@ -877,6 +868,8 @@ void GUI::openOptions()
for (int i = 0; i < _tabs.count(); i++) for (int i = 0; i < _tabs.count(); i++)
_tabs.at(i)->setPalette(options.palette); _tabs.at(i)->setPalette(options.palette);
} }
if (options.mapOpacity != _options.mapOpacity)
_pathView->setMapOpacity(options.mapOpacity);
if (options.trackWidth != _options.trackWidth) if (options.trackWidth != _options.trackWidth)
_pathView->setTrackWidth(options.trackWidth); _pathView->setTrackWidth(options.trackWidth);
if (options.routeWidth != _options.routeWidth) if (options.routeWidth != _options.routeWidth)
@ -946,6 +939,15 @@ void GUI::openOptions()
_options = options; _options = options;
} }
void GUI::printFile()
{
QPrinter printer(QPrinter::HighResolution);
QPrintDialog dialog(&printer, this);
if (dialog.exec() == QDialog::Accepted)
plot(&printer);
}
void GUI::exportFile() void GUI::exportFile()
{ {
ExportDialog dialog(&_export, this); ExportDialog dialog(&_export, this);
@ -956,6 +958,7 @@ void GUI::exportFile()
printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFormat(QPrinter::PdfFormat);
printer.setCreator(QString(APP_NAME) + QString(" ") printer.setCreator(QString(APP_NAME) + QString(" ")
+ QString(APP_VERSION)); + QString(APP_VERSION));
printer.setResolution(_export.resolution);
printer.setOrientation(_export.orientation); printer.setOrientation(_export.orientation);
printer.setOutputFileName(_export.fileName); printer.setOutputFileName(_export.fileName);
printer.setPaperSize(_export.paperSize); printer.setPaperSize(_export.paperSize);
@ -1005,28 +1008,29 @@ void GUI::plot(QPrinter *printer)
if (tm > 0 && _options.printMovingTime) if (tm > 0 && _options.printMovingTime)
info.insert(tr("Moving time"), Format::timeSpan(tm)); info.insert(tr("Moving time"), Format::timeSpan(tm));
qreal fsr = 1085.0 / (qMax(printer->width(), printer->height())
ratio = p.paintEngine()->paintDevice()->logicalDpiX() / SCREEN_DPI; / (qreal)printer->resolution());
ratio = p.paintEngine()->paintDevice()->logicalDpiX() / fsr;
if (info.isEmpty()) { if (info.isEmpty()) {
ih = 0; ih = 0;
mh = 0; mh = 0;
} else { } else {
ih = info.contentSize().height() * ratio; ih = info.contentSize().height() * ratio;
mh = ih / 2; mh = ih / 2;
info.plot(&p, QRectF(0, 0, printer->width(), ih)); info.plot(&p, QRectF(0, 0, printer->width(), ih), ratio);
} }
if (_graphTabWidget->isVisible() && !_options.separateGraphPage) { if (_graphTabWidget->isVisible() && !_options.separateGraphPage) {
qreal r = (((qreal)(printer)->width()) / (qreal)(printer->height())); qreal r = (((qreal)(printer)->width()) / (qreal)(printer->height()));
gh = (printer->width() > printer->height()) gh = (printer->width() > printer->height())
? 0.15 * r * (printer->height() - ih - 2*mh) ? 0.15 * r * (printer->height() - ih - 2*mh)
: 0.15 * (printer->height() - ih - 2*mh); : 0.15 * (printer->height() - ih - 2*mh);
gh = qMax(gh, ratio * 150);
GraphTab *gt = static_cast<GraphTab*>(_graphTabWidget->currentWidget()); GraphTab *gt = static_cast<GraphTab*>(_graphTabWidget->currentWidget());
gt->plot(&p, QRectF(0, printer->height() - gh, printer->width(), gh)); gt->plot(&p, QRectF(0, printer->height() - gh, printer->width(), gh),
ratio);
} else } else
gh = 0; gh = 0;
_pathView->plot(&p, QRectF(0, ih + mh, printer->width(), printer->height() _pathView->plot(&p, QRectF(0, ih + mh, printer->width(), printer->height()
- (ih + 2*mh + gh))); - (ih + 2*mh + gh)), _options.hiresPrint);
if (_graphTabWidget->isVisible() && _options.separateGraphPage) { if (_graphTabWidget->isVisible() && _options.separateGraphPage) {
printer->newPage(); printer->newPage();
@ -1043,7 +1047,8 @@ void GUI::plot(QPrinter *printer)
qreal y = 0; qreal y = 0;
for (int i = 0; i < _tabs.size(); i++) { for (int i = 0; i < _tabs.size(); i++) {
if (_tabs.at(i)->count()) { if (_tabs.at(i)->count()) {
_tabs.at(i)->plot(&p, QRectF(0, y, printer->width(), gh)); _tabs.at(i)->plot(&p, QRectF(0, y, printer->width(), gh),
ratio);
y += gh + sp; y += gh + sp;
} }
} }
@ -1579,6 +1584,8 @@ void GUI::writeSettings()
settings.beginGroup(EXPORT_SETTINGS_GROUP); settings.beginGroup(EXPORT_SETTINGS_GROUP);
if (_export.orientation != PAPER_ORIENTATION_DEFAULT) if (_export.orientation != PAPER_ORIENTATION_DEFAULT)
settings.setValue(PAPER_ORIENTATION_SETTING, _export.orientation); settings.setValue(PAPER_ORIENTATION_SETTING, _export.orientation);
if (_export.resolution != RESOLUTION_DEFAULT)
settings.setValue(RESOLUTION_SETTING, _export.resolution);
if (_export.paperSize != PAPER_SIZE_DEFAULT) if (_export.paperSize != PAPER_SIZE_DEFAULT)
settings.setValue(PAPER_SIZE_SETTING, _export.paperSize); settings.setValue(PAPER_SIZE_SETTING, _export.paperSize);
if (_export.margins.left() != MARGIN_LEFT_DEFAULT) if (_export.margins.left() != MARGIN_LEFT_DEFAULT)
@ -1598,6 +1605,8 @@ void GUI::writeSettings()
settings.setValue(PALETTE_COLOR_SETTING, _options.palette.color()); settings.setValue(PALETTE_COLOR_SETTING, _options.palette.color());
if (_options.palette.shift() != PALETTE_SHIFT_DEFAULT) if (_options.palette.shift() != PALETTE_SHIFT_DEFAULT)
settings.setValue(PALETTE_SHIFT_SETTING, _options.palette.shift()); settings.setValue(PALETTE_SHIFT_SETTING, _options.palette.shift());
if (_options.mapOpacity != MAP_OPACITY_DEFAULT)
settings.setValue(MAP_OPACITY_SETTING, _options.mapOpacity);
if (_options.trackWidth != TRACK_WIDTH_DEFAULT) if (_options.trackWidth != TRACK_WIDTH_DEFAULT)
settings.setValue(TRACK_WIDTH_SETTING, _options.trackWidth); settings.setValue(TRACK_WIDTH_SETTING, _options.trackWidth);
if (_options.routeWidth != ROUTE_WIDTH_DEFAULT) if (_options.routeWidth != ROUTE_WIDTH_DEFAULT)
@ -1634,6 +1643,8 @@ void GUI::writeSettings()
settings.setValue(USE_OPENGL_SETTING, _options.useOpenGL); settings.setValue(USE_OPENGL_SETTING, _options.useOpenGL);
if (_options.pixmapCache != PIXMAP_CACHE_DEFAULT) if (_options.pixmapCache != PIXMAP_CACHE_DEFAULT)
settings.setValue(PIXMAP_CACHE_SETTING, _options.pixmapCache); settings.setValue(PIXMAP_CACHE_SETTING, _options.pixmapCache);
if (_options.hiresPrint != HIRES_PRINT_DEFAULT)
settings.setValue(HIRES_PRINT_SETTING, _options.hiresPrint);
if (_options.printName != PRINT_NAME_DEFAULT) if (_options.printName != PRINT_NAME_DEFAULT)
settings.setValue(PRINT_NAME_SETTING, _options.printName); settings.setValue(PRINT_NAME_SETTING, _options.printName);
if (_options.printDate != PRINT_DATE_DEFAULT) if (_options.printDate != PRINT_DATE_DEFAULT)
@ -1773,6 +1784,8 @@ void GUI::readSettings()
settings.beginGroup(EXPORT_SETTINGS_GROUP); settings.beginGroup(EXPORT_SETTINGS_GROUP);
_export.orientation = (QPrinter::Orientation) settings.value( _export.orientation = (QPrinter::Orientation) settings.value(
PAPER_ORIENTATION_SETTING, PAPER_ORIENTATION_DEFAULT).toInt(); PAPER_ORIENTATION_SETTING, PAPER_ORIENTATION_DEFAULT).toInt();
_export.resolution = settings.value(RESOLUTION_SETTING, RESOLUTION_DEFAULT)
.toInt();
_export.paperSize = (QPrinter::PaperSize) settings.value(PAPER_SIZE_SETTING, _export.paperSize = (QPrinter::PaperSize) settings.value(PAPER_SIZE_SETTING,
PAPER_SIZE_DEFAULT).toInt(); PAPER_SIZE_DEFAULT).toInt();
qreal ml = settings.value(MARGIN_LEFT_SETTING, MARGIN_LEFT_DEFAULT) qreal ml = settings.value(MARGIN_LEFT_SETTING, MARGIN_LEFT_DEFAULT)
@ -1793,6 +1806,8 @@ void GUI::readSettings()
qreal ps = settings.value(PALETTE_SHIFT_SETTING, PALETTE_SHIFT_DEFAULT) qreal ps = settings.value(PALETTE_SHIFT_SETTING, PALETTE_SHIFT_DEFAULT)
.toDouble(); .toDouble();
_options.palette = Palette(pc, ps); _options.palette = Palette(pc, ps);
_options.mapOpacity = settings.value(MAP_OPACITY_SETTING,
MAP_OPACITY_DEFAULT).toInt();
_options.trackWidth = settings.value(TRACK_WIDTH_SETTING, _options.trackWidth = settings.value(TRACK_WIDTH_SETTING,
TRACK_WIDTH_DEFAULT).toInt(); TRACK_WIDTH_DEFAULT).toInt();
_options.routeWidth = settings.value(ROUTE_WIDTH_SETTING, _options.routeWidth = settings.value(ROUTE_WIDTH_SETTING,
@ -1829,6 +1844,8 @@ void GUI::readSettings()
.toBool(); .toBool();
_options.pixmapCache = settings.value(PIXMAP_CACHE_SETTING, _options.pixmapCache = settings.value(PIXMAP_CACHE_SETTING,
PIXMAP_CACHE_DEFAULT).toInt(); PIXMAP_CACHE_DEFAULT).toInt();
_options.hiresPrint = settings.value(HIRES_PRINT_SETTING,
HIRES_PRINT_DEFAULT).toBool();
_options.printName = settings.value(PRINT_NAME_SETTING, PRINT_NAME_DEFAULT) _options.printName = settings.value(PRINT_NAME_SETTING, PRINT_NAME_DEFAULT)
.toBool(); .toBool();
_options.printDate = settings.value(PRINT_DATE_SETTING, PRINT_DATE_DEFAULT) _options.printDate = settings.value(PRINT_DATE_SETTING, PRINT_DATE_DEFAULT)
@ -1845,6 +1862,7 @@ void GUI::readSettings()
SEPARATE_GRAPH_PAGE_DEFAULT).toBool(); SEPARATE_GRAPH_PAGE_DEFAULT).toBool();
_pathView->setPalette(_options.palette); _pathView->setPalette(_options.palette);
_pathView->setMapOpacity(_options.mapOpacity);
_pathView->setTrackWidth(_options.trackWidth); _pathView->setTrackWidth(_options.trackWidth);
_pathView->setRouteWidth(_options.routeWidth); _pathView->setRouteWidth(_options.routeWidth);
_pathView->setTrackStyle(_options.trackStyle); _pathView->setTrackStyle(_options.trackStyle);

View File

@ -75,7 +75,7 @@ Coordinates LambertConic::xy2ll(const QPointF &p) const
double dx = p.x() - _fe; double dx = p.x() - _fe;
double dy = p.y() - _fn - _R0; double dy = p.y() - _fn - _R0;
double R = sqrt(dx * dx + dy * dy); double R = sqrt(dx * dx + dy * dy);
double q = _q0 - log(R / _R0) / _n; double q = _q0 - log(fabs(R / _R0)) / _n;
return Coordinates(rad2deg(deg2rad(_cm) + dl / _n), rad2deg(iq(_e, q))); return Coordinates(rad2deg(deg2rad(_cm) + dl / _n), rad2deg(iq(_e, q)));
} }

View File

@ -118,8 +118,6 @@ void Matrix::zeroize()
QDebug operator<<(QDebug dbg, const Matrix &matrix) QDebug operator<<(QDebug dbg, const Matrix &matrix)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "Matrix(" << endl; dbg.nospace() << "Matrix(" << endl;
for (size_t i = 0; i < matrix.h(); i++) { for (size_t i = 0; i < matrix.h(); i++) {
for (size_t j = 0; j < matrix.w(); j++) for (size_t j = 0; j < matrix.w(); j++)
@ -128,7 +126,5 @@ QDebug operator<<(QDebug dbg, const Matrix &matrix)
} }
dbg << ")"; dbg << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -229,6 +229,24 @@ bool OfflineMap::createProjection(const QString &datum,
else if (projection == "(SG) Swedish Grid") else if (projection == "(SG) Swedish Grid")
_projection = new TransverseMercator(d.ellipsoid(), 0, 15.808278, 1, _projection = new TransverseMercator(d.ellipsoid(), 0, 15.808278, 1,
1500000, 0); 1500000, 0);
else if (projection == "(I) France Zone I")
_projection = new LambertConic(d.ellipsoid(), 48.598523, 50.395912,
49.5, 2.337229, 1 /*0.99987734*/, 600000, 1200000);
else if (projection == "(II) France Zone II")
_projection = new LambertConic(d.ellipsoid(), 45.898919, 47.696014,
46.8, 2.337229, 1 /*0.99987742*/, 600000, 2200000);
else if (projection == "(III) France Zone III")
_projection = new LambertConic(d.ellipsoid(), 43.199291, 44.996094,
44.1, 2.337229, 1 /*0.99987750*/, 600000, 3200000);
else if (projection == "(IV) France Zone IV")
_projection = new LambertConic(d.ellipsoid(), 41.560388, 42.767663,
42.165, 2.337229, 1 /*0.99994471*/, 234.358, 4185861.369);
else if (projection == "(VICGRID) Victoria Australia")
_projection = new LambertConic(d.ellipsoid(), -36, -38, -37, 145, 1,
2500000, 4500000);
else if (projection == "(VG94) VICGRID94 Victoria Australia")
_projection = new LambertConic(d.ellipsoid(), -36, -38, -37, 145, 1,
2500000, 2500000);
else { else {
_errorString = QString("%1: Unknown map projection").arg(projection); _errorString = QString("%1: Unknown map projection").arg(projection);
return false; return false;

View File

@ -9,6 +9,7 @@
#include <QGroupBox> #include <QGroupBox>
#include <QCheckBox> #include <QCheckBox>
#include <QComboBox> #include <QComboBox>
#include <QRadioButton>
#include <QLabel> #include <QLabel>
#include <QSysInfo> #include <QSysInfo>
#include "config.h" #include "config.h"
@ -16,12 +17,13 @@
#include "colorbox.h" #include "colorbox.h"
#include "stylecombobox.h" #include "stylecombobox.h"
#include "oddspinbox.h" #include "oddspinbox.h"
#include "percentslider.h"
#include "optionsdialog.h" #include "optionsdialog.h"
#define MENU_MARGIN 20 #define MENU_MARGIN 20
#define MENU_ICON_SIZE 32 #define MENU_ICON_SIZE 32
QWidget *OptionsDialog::createAppearancePage() QWidget *OptionsDialog::createAppearancePage()
{ {
_baseColor = new ColorBox(); _baseColor = new ColorBox();
@ -31,14 +33,39 @@ QWidget *OptionsDialog::createAppearancePage()
_colorOffset->setMaximum(1.0); _colorOffset->setMaximum(1.0);
_colorOffset->setSingleStep(0.01); _colorOffset->setSingleStep(0.01);
_colorOffset->setValue(_options->palette.shift()); _colorOffset->setValue(_options->palette.shift());
QFormLayout *paletteLayout = new QFormLayout(); QFormLayout *paletteLayout = new QFormLayout();
paletteLayout->addRow(tr("Base color:"), _baseColor); paletteLayout->addRow(tr("Base color:"), _baseColor);
paletteLayout->addRow(tr("Palette shift:"), _colorOffset); paletteLayout->addRow(tr("Palette shift:"), _colorOffset);
#ifndef Q_OS_MAC
QGroupBox *pathsBox = new QGroupBox(tr("Paths"));
pathsBox->setLayout(paletteLayout);
#endif
_mapOpacity = new PercentSlider();
_mapOpacity->setValue(_options->mapOpacity);
QFormLayout *mapLayout = new QFormLayout();
mapLayout->addRow(tr("Map opacity:"), _mapOpacity);
#ifndef Q_OS_MAC
QGroupBox *mapBox = new QGroupBox(tr("Map"));
mapBox->setLayout(mapLayout);
#endif
QWidget *colorTab = new QWidget(); QWidget *colorTab = new QWidget();
colorTab->setLayout(paletteLayout); QVBoxLayout *colorTabLayout = new QVBoxLayout();
#ifdef Q_OS_MAC
QFrame *l0 = new QFrame();
l0->setFrameShape(QFrame::HLine);
l0->setFrameShadow(QFrame::Sunken);
colorTabLayout->addLayout(paletteLayout);
colorTabLayout->addWidget(l0);
colorTabLayout->addLayout(mapLayout);
#else // Q_OS_MAC
colorTabLayout->addWidget(pathsBox);
colorTabLayout->addWidget(mapBox);
#endif // O_OS_MAC
colorTabLayout->addStretch();
colorTab->setLayout(colorTabLayout);
_trackWidth = new QSpinBox(); _trackWidth = new QSpinBox();
_trackWidth->setValue(_options->trackWidth); _trackWidth->setValue(_options->trackWidth);
@ -239,6 +266,36 @@ QWidget *OptionsDialog::createPOIPage()
QWidget *OptionsDialog::createExportPage() QWidget *OptionsDialog::createExportPage()
{ {
_wysiwyg = new QRadioButton(tr("WYSIWYG"));
_hires = new QRadioButton(tr("High-Resolution"));
if (_options->hiresPrint)
_hires->setChecked(true);
else
_wysiwyg->setChecked(true);
QLabel *lw = new QLabel(tr("The printed area is approximately the display"
" area. The map zoom level does not change."));
QLabel *lh = new QLabel(tr("The zoom level will be changed so that"
" the whole content (tracks/waypoints) fits to the printed area and"
" the map resolution is as close as possible to the print resolution."));
QFont f = lw->font();
f.setPointSize(f.pointSize() - 1);
lw->setWordWrap(true);
lh->setWordWrap(true);
lw->setFont(f);
lh->setFont(f);
QVBoxLayout *modeTabLayout = new QVBoxLayout();
modeTabLayout->addWidget(_wysiwyg);
modeTabLayout->addWidget(lw);
modeTabLayout->addSpacing(10);
modeTabLayout->addWidget(_hires);
modeTabLayout->addWidget(lh);
modeTabLayout->addStretch();
QWidget *modeTab = new QWidget();
modeTab->setLayout(modeTabLayout);
_name = new QCheckBox(tr("Name")); _name = new QCheckBox(tr("Name"));
_name->setChecked(_options->printName); _name->setChecked(_options->printName);
_date = new QCheckBox(tr("Date")); _date = new QCheckBox(tr("Date"));
@ -274,6 +331,7 @@ QWidget *OptionsDialog::createExportPage()
QTabWidget *exportPage = new QTabWidget(); QTabWidget *exportPage = new QTabWidget();
exportPage->addTab(modeTab, tr("Print mode"));
exportPage->addTab(headerTab, tr("Header")); exportPage->addTab(headerTab, tr("Header"));
exportPage->addTab(graphTab, tr("Graphs")); exportPage->addTab(graphTab, tr("Graphs"));
@ -369,6 +427,7 @@ void OptionsDialog::accept()
{ {
_options->palette.setColor(_baseColor->color()); _options->palette.setColor(_baseColor->color());
_options->palette.setShift(_colorOffset->value()); _options->palette.setShift(_colorOffset->value());
_options->mapOpacity = _mapOpacity->value();
_options->trackWidth = _trackWidth->value(); _options->trackWidth = _trackWidth->value();
_options->trackStyle = (Qt::PenStyle) _trackStyle->itemData( _options->trackStyle = (Qt::PenStyle) _trackStyle->itemData(
_trackStyle->currentIndex()).toInt(); _trackStyle->currentIndex()).toInt();
@ -395,6 +454,7 @@ void OptionsDialog::accept()
_options->useOpenGL = _useOpenGL->isChecked(); _options->useOpenGL = _useOpenGL->isChecked();
_options->pixmapCache = _pixmapCache->value(); _options->pixmapCache = _pixmapCache->value();
_options->hiresPrint = _hires->isChecked();
_options->printName = _name->isChecked(); _options->printName = _name->isChecked();
_options->printDate = _date->isChecked(); _options->printDate = _date->isChecked();
_options->printDistance = _distance->isChecked(); _options->printDistance = _distance->isChecked();

View File

@ -12,10 +12,13 @@ class QSpinBox;
class QDoubleSpinBox; class QDoubleSpinBox;
class QComboBox; class QComboBox;
class QCheckBox; class QCheckBox;
class QRadioButton;
class PercentSlider;
struct Options { struct Options {
// Appearance // Appearance
Palette palette; Palette palette;
int mapOpacity;
int trackWidth; int trackWidth;
int routeWidth; int routeWidth;
Qt::PenStyle trackStyle; Qt::PenStyle trackStyle;
@ -38,6 +41,7 @@ struct Options {
bool useOpenGL; bool useOpenGL;
int pixmapCache; int pixmapCache;
// Print/Export // Print/Export
bool hiresPrint;
bool printName; bool printName;
bool printDate; bool printDate;
bool printDistance; bool printDistance;
@ -71,6 +75,7 @@ private:
// Appearance // Appearance
ColorBox *_baseColor; ColorBox *_baseColor;
QDoubleSpinBox *_colorOffset; QDoubleSpinBox *_colorOffset;
PercentSlider *_mapOpacity;
QSpinBox *_trackWidth; QSpinBox *_trackWidth;
StyleComboBox *_trackStyle; StyleComboBox *_trackStyle;
QSpinBox *_routeWidth; QSpinBox *_routeWidth;
@ -93,6 +98,8 @@ private:
QSpinBox *_pixmapCache; QSpinBox *_pixmapCache;
QCheckBox *_useOpenGL; QCheckBox *_useOpenGL;
// Print/Export // Print/Export
QRadioButton *_wysiwyg;
QRadioButton *_hires;
QCheckBox *_name; QCheckBox *_name;
QCheckBox *_date; QCheckBox *_date;
QCheckBox *_distance; QCheckBox *_distance;

View File

@ -1,3 +1,4 @@
#include <cstring>
#include <QtEndian> #include <QtEndian>
#include <QFile> #include <QFile>
#include "ozf.h" #include "ozf.h"
@ -52,8 +53,8 @@ bool OZF::read(void *data, size_t size, size_t decryptSize)
bool OZF::initOZF3() bool OZF::initOZF3()
{ {
quint8 randomNumber, initial; quint8 randomNumber, initial;
quint32 keyblock;
quint8 h1[8]; quint8 h1[8];
quint8 h2[16], h2d[16];
if (!_file.seek(14)) if (!_file.seek(14))
@ -75,41 +76,23 @@ bool OZF::initOZF3()
return false; return false;
_tileSize = *(h1 + 6); _tileSize = *(h1 + 6);
if (!_file.seek(15 + randomNumber)) if (!_file.seek(15 + randomNumber + 4))
return false; return false;
if (!readValue(keyblock)) if (_file.read((char*)h2, sizeof(h2)) != (qint64)sizeof(h2))
return false; return false;
switch (keyblock & 0xFF) { for (int i = 0; i < 256; i++) {
case 0xf1: memcpy(h2d, h2, sizeof(h2d));
initial += 0x8a; decrypt(h2d, sizeof(h2d), (quint8)i);
break;
case 0x18: if ((quint32)*h2d == 40 && (quint16)*(h2d + 12) == 1
case 0x54: && (quint16)*(h2d + 14) == 8) {
initial += 0xa0; _key = (quint8)i;
break; return true;
case 0x56: }
initial += 0xb9;
break;
case 0x43:
initial += 0x6a;
break;
case 0x83:
initial += 0xa4;
break;
case 0xc5:
initial += 0x7e;
break;
case 0x38:
initial += 0xc1;
break;
default:
break;
} }
_key = initial; return false;
return true;
} }
bool OZF::initOZF2() bool OZF::initOZF2()
@ -135,8 +118,10 @@ bool OZF::readHeaders()
} else if (magic == OZF3_MAGIC) { } else if (magic == OZF3_MAGIC) {
if (!initOZF3()) if (!initOZF3())
return false; return false;
} else } else {
qWarning("%s: not a OZF2/OZF3 file", qPrintable(_file.fileName()));
return false; return false;
}
return true; return true;
} }
@ -152,7 +137,8 @@ bool OZF::readTileTable()
return false; return false;
if (!readValue(tableOffset)) if (!readValue(tableOffset))
return false; return false;
zooms = (_file.size() - tableOffset - sizeof(quint32)) / sizeof(quint32); zooms = (int)((_file.size() - tableOffset - sizeof(quint32))
/ sizeof(quint32));
for (int i = 0; i < zooms - 2; i++) { for (int i = 0; i < zooms - 2; i++) {
if (!_file.seek(tableOffset + i * sizeof(quint32))) if (!_file.seek(tableOffset + i * sizeof(quint32)))
@ -196,7 +182,7 @@ bool OZF::readTileTable()
_zooms.append(zoom); _zooms.append(zoom);
} }
return true; return _zooms.isEmpty() ? false : true;
} }
bool OZF::load(const QString &path) bool OZF::load(const QString &path)
@ -209,13 +195,13 @@ bool OZF::load(const QString &path)
return false; return false;
if (!readHeaders()) { if (!readHeaders()) {
qWarning("%s: not a OZF2/OZF3 file", qPrintable(_file.fileName())); qWarning("%s: Invalid header", qPrintable(_file.fileName()));
_file.close(); _file.close();
return false; return false;
} }
if (!readTileTable()) { if (!readTileTable()) {
qWarning("%s: file format error", qPrintable(_file.fileName())); qWarning("%s: Invalid tile table", qPrintable(_file.fileName()));
_file.close(); _file.close();
return false; return false;
} }

View File

@ -39,9 +39,7 @@ void Palette::reset()
QDebug operator<<(QDebug dbg, const Palette &palette) QDebug operator<<(QDebug dbg, const Palette &palette)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "Palette(" << palette.color() << ", " << palette.shift() dbg.nospace() << "Palette(" << palette.color() << ", " << palette.shift()
<< ")"; << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -14,9 +14,7 @@ RectC Path::boundingRect() const
QDebug operator<<(QDebug dbg, const PathPoint &point) QDebug operator<<(QDebug dbg, const PathPoint &point)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "PathPoint(" << point.distance() << ", " dbg.nospace() << "PathPoint(" << point.distance() << ", "
<< point.coordinates() << ")"; << point.coordinates() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -46,6 +46,7 @@ PathView::PathView(Map *map, POI *poi, QWidget *parent)
connect(_poi, SIGNAL(pointsChanged()), this, SLOT(updatePOI())); connect(_poi, SIGNAL(pointsChanged()), this, SLOT(updatePOI()));
_units = Metric; _units = Metric;
_opacity = 1.0;
_showMap = true; _showMap = true;
_showTracks = true; _showTracks = true;
@ -144,7 +145,7 @@ void PathView::addWaypoints(const QList<Waypoint> &waypoints)
QList<PathItem *> PathView::loadData(const Data &data) QList<PathItem *> PathView::loadData(const Data &data)
{ {
QList<PathItem *> paths; QList<PathItem *> paths;
qreal scale = _map->zoom(); qreal zoom = _map->zoom();
for (int i = 0; i < data.tracks().count(); i++) for (int i = 0; i < data.tracks().count(); i++)
paths.append(addTrack(*(data.tracks().at(i)))); paths.append(addTrack(*(data.tracks().at(i))));
@ -155,7 +156,7 @@ QList<PathItem *> PathView::loadData(const Data &data)
if (_tracks.empty() && _routes.empty() && _waypoints.empty()) if (_tracks.empty() && _routes.empty() && _waypoints.empty())
return paths; return paths;
if (mapScale() != scale) if (mapZoom() != zoom)
rescale(); rescale();
else else
updatePOIVisibility(); updatePOIVisibility();
@ -179,11 +180,11 @@ void PathView::updateWaypointsBoundingRect(const Coordinates &wp)
_wr.unite(wp); _wr.unite(wp);
} }
qreal PathView::mapScale() const qreal PathView::mapZoom() const
{ {
RectC br = _tr | _rr | _wr; RectC br = _tr | _rr | _wr;
return _map->zoomFit(viewport()->size() - QSize(MARGIN/2, MARGIN/2), br); return _map->zoomFit(viewport()->size() - QSize(2*MARGIN, 2*MARGIN), br);
} }
QPointF PathView::contentCenter() const QPointF PathView::contentCenter() const
@ -470,13 +471,20 @@ void PathView::keyPressEvent(QKeyEvent *event)
zoom(z, pos, c); zoom(z, pos, c);
} }
void PathView::plot(QPainter *painter, const QRectF &target) void PathView::plot(QPainter *painter, const QRectF &target, bool hires)
{ {
QRect orig, adj; QRect orig, adj;
qreal ratio, diff; qreal ratio, diff, origRes;
QPointF origScene, origPos;
Coordinates origLL;
setUpdatesEnabled(false);
_plot = true;
_map->setBlockingMode(true);
orig = viewport()->rect(); orig = viewport()->rect();
origPos = _mapScale->pos();
if (orig.height() * (target.width() / target.height()) - orig.width() < 0) { if (orig.height() * (target.width() / target.height()) - orig.width() < 0) {
ratio = target.height() / target.width(); ratio = target.height() / target.width();
@ -488,18 +496,46 @@ void PathView::plot(QPainter *painter, const QRectF &target)
adj = orig.adjusted(-diff/2, 0, diff/2, 0); adj = orig.adjusted(-diff/2, 0, diff/2, 0);
} }
setUpdatesEnabled(false); // Adjust the view for printing
_plot = true; if (hires) {
_map->setBlockingMode(true); origScene = mapToScene(orig.center());
origLL = _map->xy2ll(origScene);
origRes = _map->resolution(origScene);
QPointF pos = _mapScale->pos(); QPointF s(painter->device()->logicalDpiX()
/ (qreal)metric(QPaintDevice::PdmDpiX),
painter->device()->logicalDpiY()
/ (qreal)metric(QPaintDevice::PdmDpiY));
adj = QRect(0, 0, adj.width() * s.x(), adj.height() * s.y());
_map->zoomFit(adj.size(), _tr | _rr | _wr);
rescale();
QPointF center = contentCenter();
centerOn(center);
adj.moveCenter(mapFromScene(center));
_mapScale->setResolution(_map->resolution(_map->ll2xy(origLL)));
_mapScale->setDigitalZoom(-log2(s.x()));
_mapScale->setPos(mapToScene(QPoint(adj.bottomRight() + QPoint(
-(SCALE_OFFSET + _mapScale->boundingRect().width()) * s.x(),
-(SCALE_OFFSET + _mapScale->boundingRect().height()) * s.x()))));
} else {
_mapScale->setPos(mapToScene(QPoint(adj.bottomRight() + QPoint( _mapScale->setPos(mapToScene(QPoint(adj.bottomRight() + QPoint(
-(SCALE_OFFSET + _mapScale->boundingRect().width()), -(SCALE_OFFSET + _mapScale->boundingRect().width()),
-(SCALE_OFFSET + _mapScale->boundingRect().height()))))); -(SCALE_OFFSET + _mapScale->boundingRect().height())))));
}
// Print the view
render(painter, target, adj); render(painter, target, adj);
_mapScale->setPos(pos); // Revert view changes to display mode
if (hires) {
_map->zoomFit(origRes, origLL);
rescale();
centerOn(origScene);
_mapScale->setDigitalZoom(0);
_mapScale->setResolution(origRes);
}
_mapScale->setPos(origPos);
_map->setBlockingMode(false); _map->setBlockingMode(false);
_plot = false; _plot = false;
@ -637,18 +673,28 @@ void PathView::setRouteStyle(Qt::PenStyle style)
_routes.at(i)->setStyle(style); _routes.at(i)->setStyle(style);
} }
void PathView::setMapOpacity(int opacity)
{
_opacity = opacity / 100.0;
resetCachedContent();
}
void PathView::drawBackground(QPainter *painter, const QRectF &rect) void PathView::drawBackground(QPainter *painter, const QRectF &rect)
{ {
if (_showMap) if (_showMap) {
if (_opacity < 1.0) {
painter->fillRect(rect, Qt::white);
painter->setOpacity(_opacity);
}
_map->draw(painter, rect); _map->draw(painter, rect);
else } else
painter->fillRect(rect, Qt::white); painter->fillRect(rect, Qt::white);
} }
void PathView::resizeEvent(QResizeEvent *event) void PathView::resizeEvent(QResizeEvent *event)
{ {
qreal scale = _map->zoom(); qreal zoom = _map->zoom();
if (mapScale() != scale) if (mapZoom() != zoom)
rescale(); rescale();
QPointF center = contentCenter(); QPointF center = contentCenter();

View File

@ -37,7 +37,7 @@ public:
void setMap(Map *map); void setMap(Map *map);
void setUnits(enum Units units); void setUnits(enum Units units);
void plot(QPainter *painter, const QRectF &target); void plot(QPainter *painter, const QRectF &target, bool hires);
int trackCount() const {return _tracks.count();} int trackCount() const {return _tracks.count();}
int routeCount() const {return _routes.count();} int routeCount() const {return _routes.count();}
@ -63,6 +63,7 @@ public slots:
void setRouteWidth(int width); void setRouteWidth(int width);
void setTrackStyle(Qt::PenStyle style); void setTrackStyle(Qt::PenStyle style);
void setRouteStyle(Qt::PenStyle style); void setRouteStyle(Qt::PenStyle style);
void setMapOpacity(int opacity);
private slots: private slots:
void updatePOI(); void updatePOI();
@ -75,7 +76,7 @@ private:
void loadPOI(); void loadPOI();
void clearPOI(); void clearPOI();
qreal mapScale() const; qreal mapZoom() const;
QPointF contentCenter() const; QPointF contentCenter() const;
void rescale(); void rescale();
void zoom(int zoom, const QPoint &pos, const Coordinates &c); void zoom(int zoom, const QPoint &pos, const Coordinates &c);
@ -106,6 +107,7 @@ private:
POI *_poi; POI *_poi;
Palette _palette; Palette _palette;
Units _units; Units _units;
qreal _opacity;
bool _showMap; bool _showMap;
bool _showTracks; bool _showTracks;

48
src/percentslider.cpp Normal file
View File

@ -0,0 +1,48 @@
#include <QSlider>
#include <QLabel>
#include <QHBoxLayout>
#include "units.h"
#include "percentslider.h"
static QString format(int value)
{
return QString::number(value) + UNIT_SPACE + QString("%");
}
PercentSlider::PercentSlider(QWidget *parent) : QWidget(parent)
{
_slider = new QSlider(Qt::Horizontal);
_label = new QLabel();
_slider->setMinimum(0);
_slider->setMaximum(100);
QFontMetrics fm(_label->font());
_label->setFixedWidth(fm.boundingRect(format(_slider->maximum())).width());
_label->setAlignment(Qt::AlignRight);
connect(_slider, SIGNAL(sliderMoved(int)), this, SLOT(updateLabel(int)));
QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(_slider);
layout->addWidget(_label);
setLayout(layout);
}
void PercentSlider::updateLabel(int value)
{
_label->setText(format(value));
}
int PercentSlider::value() const
{
return _slider->value();
}
void PercentSlider::setValue(int value)
{
_slider->setValue(value);
_label->setText(format(value));
}

29
src/percentslider.h Normal file
View File

@ -0,0 +1,29 @@
#ifndef PERCENTSLIDER_H
#define PERCENTSLIDER_H
#include <QWidget>
class QSlider;
class QLabel;
class PercentSlider : public QWidget
{
Q_OBJECT
public:
PercentSlider(QWidget *parent = 0);
int value() const;
public slots:
void setValue(int value);
private slots:
void updateLabel(int value);
private:
QSlider *_slider;
QLabel *_label;
};
#endif // PERCENTSLIDER_H

View File

@ -10,8 +10,6 @@ void RangeF::resize(qreal size)
QDebug operator<<(QDebug dbg, const RangeF &range) QDebug operator<<(QDebug dbg, const RangeF &range)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "RangeF(" << range.min() << ", " << range.max() << ")"; dbg.nospace() << "RangeF(" << range.min() << ", " << range.max() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -58,8 +58,6 @@ void RectC::unite(const Coordinates &c)
QDebug operator<<(QDebug dbg, const RectC &rect) QDebug operator<<(QDebug dbg, const RectC &rect)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "RectC(" << rect.topLeft() << ", " << rect.size() << ")"; dbg.nospace() << "RectC(" << rect.topLeft() << ", " << rect.size() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -132,7 +132,7 @@ void ScaleItem::setUnits(enum Units units)
update(); update();
} }
void ScaleItem::setDigitalZoom(int zoom) void ScaleItem::setDigitalZoom(qreal zoom)
{ {
prepareGeometryChange(); prepareGeometryChange();
_digitalZoom = zoom; _digitalZoom = zoom;

View File

@ -15,7 +15,7 @@ public:
void setResolution(qreal res); void setResolution(qreal res);
void setUnits(enum Units units); void setUnits(enum Units units);
void setDigitalZoom(int zoom); void setDigitalZoom(qreal zoom);
private: private:
void updateBoundingRect(); void updateBoundingRect();
@ -28,7 +28,7 @@ private:
Units _units; Units _units;
bool _scale; bool _scale;
int _digitalZoom; qreal _digitalZoom;
QRectF _boundingRect; QRectF _boundingRect;
}; };

View File

@ -70,12 +70,16 @@
#define EXPORT_FILENAME_SETTING "fileName" #define EXPORT_FILENAME_SETTING "fileName"
#define EXPORT_FILENAME_DEFAULT QString("%1/export.pdf"). \ #define EXPORT_FILENAME_DEFAULT QString("%1/export.pdf"). \
arg(QDir::currentPath()) arg(QDir::currentPath())
#define RESOLUTION_SETTING "resolution"
#define RESOLUTION_DEFAULT 600
#define OPTIONS_SETTINGS_GROUP "Options" #define OPTIONS_SETTINGS_GROUP "Options"
#define PALETTE_COLOR_SETTING "paletteColor" #define PALETTE_COLOR_SETTING "paletteColor"
#define PALETTE_COLOR_DEFAULT QColor(Qt::blue) #define PALETTE_COLOR_DEFAULT QColor(Qt::blue)
#define PALETTE_SHIFT_SETTING "paletteShift" #define PALETTE_SHIFT_SETTING "paletteShift"
#define PALETTE_SHIFT_DEFAULT 0.62 #define PALETTE_SHIFT_DEFAULT 0.62
#define MAP_OPACITY_SETTING "mapOpacity"
#define MAP_OPACITY_DEFAULT 100
#define TRACK_WIDTH_SETTING "trackWidth" #define TRACK_WIDTH_SETTING "trackWidth"
#define TRACK_WIDTH_DEFAULT 3 #define TRACK_WIDTH_DEFAULT 3
#define ROUTE_WIDTH_SETTING "routeWidth" #define ROUTE_WIDTH_SETTING "routeWidth"
@ -112,6 +116,8 @@
#define USE_OPENGL_DEFAULT false #define USE_OPENGL_DEFAULT false
#define PIXMAP_CACHE_SETTING "pixmapCache" #define PIXMAP_CACHE_SETTING "pixmapCache"
#define PIXMAP_CACHE_DEFAULT 64 /* MB */ #define PIXMAP_CACHE_DEFAULT 64 /* MB */
#define HIRES_PRINT_SETTING "hiresPrint"
#define HIRES_PRINT_DEFAULT false
#define PRINT_NAME_SETTING "printName" #define PRINT_NAME_SETTING "printName"
#define PRINT_NAME_DEFAULT true #define PRINT_NAME_DEFAULT true
#define PRINT_DATE_SETTING "printDate" #define PRINT_DATE_SETTING "printDate"

View File

@ -16,11 +16,9 @@ void TrackInfo::insert(const QString &key, const QString &value)
_info->insert(key, value); _info->insert(key, value);
} }
void TrackInfo::plot(QPainter *painter, const QRectF &target) void TrackInfo::plot(QPainter *painter, const QRectF &target, qreal scale)
{ {
qreal ratio = painter->paintEngine()->paintDevice()->logicalDpiX() QSizeF canvas = QSizeF(target.width() / scale, target.height() / scale);
/ SCREEN_DPI;
QSizeF canvas = QSizeF(target.width() / ratio, target.height() / ratio);
QSizeF diff = QSizeF(qAbs(canvas.width() - sceneRect().width()), QSizeF diff = QSizeF(qAbs(canvas.width() - sceneRect().width()),
qAbs(canvas.height() - sceneRect().height())); qAbs(canvas.height() - sceneRect().height()));
QRectF adj = sceneRect().adjusted(0, -diff.height()/2, diff.width(), QRectF adj = sceneRect().adjusted(0, -diff.height()/2, diff.width(),

View File

@ -13,7 +13,7 @@ public:
TrackInfo(QObject *parent = 0); TrackInfo(QObject *parent = 0);
void insert(const QString &key, const QString &value); void insert(const QString &key, const QString &value);
void plot(QPainter *painter, const QRectF &target); void plot(QPainter *painter, const QRectF &target, qreal scale);
bool isEmpty() const; bool isEmpty() const;
QSizeF contentSize() const; QSizeF contentSize() const;

View File

@ -2,11 +2,9 @@
QDebug operator<<(QDebug dbg, const Trackpoint &trackpoint) QDebug operator<<(QDebug dbg, const Trackpoint &trackpoint)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "Trackpoint(" << trackpoint.coordinates() << ", " dbg.nospace() << "Trackpoint(" << trackpoint.coordinates() << ", "
<< trackpoint.timestamp() << ", " << trackpoint.elevation() << ", " << trackpoint.timestamp() << ", " << trackpoint.elevation() << ", "
<< trackpoint.speed() << ", " << trackpoint.heartRate() << ", " << trackpoint.speed() << ", " << trackpoint.heartRate() << ", "
<< trackpoint.temperature() << ")"; << trackpoint.temperature() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }

View File

@ -25,10 +25,6 @@ enum Units {
#define C2FS 1.8 // Celsius to Farenheit - scale #define C2FS 1.8 // Celsius to Farenheit - scale
#define C2FO 32.0 // Celsius to Farenheit - offset #define C2FO 32.0 // Celsius to Farenheit - offset
#ifdef Q_OS_WIN32
#define UNIT_SPACE QString(" ")
#else // Q_OS_WIN32
#define UNIT_SPACE QString::fromUtf8("\xE2\x80\x89") #define UNIT_SPACE QString::fromUtf8("\xE2\x80\x89")
#endif // Q_OS_WIN32
#endif // UNITS_H #endif // UNITS_H

View File

@ -2,9 +2,7 @@
QDebug operator<<(QDebug dbg, const Waypoint &waypoint) QDebug operator<<(QDebug dbg, const Waypoint &waypoint)
{ {
const bool ais = dbg.autoInsertSpaces();
dbg.nospace() << "Waypoint(" << waypoint.coordinates() << ", " dbg.nospace() << "Waypoint(" << waypoint.coordinates() << ", "
<< waypoint.name() << ", " << waypoint.description() << ")"; << waypoint.name() << ", " << waypoint.description() << ")";
dbg.setAutoInsertSpaces(ais); return dbg.space();
return dbg.maybeSpace();
} }