mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-07-18 04:44:23 +02:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
3155e8436b | |||
69f9d05ccb | |||
e24a3cd99a | |||
a94fa9f0ea | |||
c4f2a44410 | |||
da4a51e7fa | |||
bb47a34823 | |||
11196c0e35 | |||
00ef815738 | |||
64f685cf60 | |||
7ab13ec8e5 | |||
d3fbbecb2d | |||
7bc83603ca |
@ -1,4 +1,4 @@
|
|||||||
version: 4.14.{build}
|
version: 4.15.{build}
|
||||||
configuration: Release
|
configuration: Release
|
||||||
platform: Any CPU
|
platform: Any CPU
|
||||||
environment:
|
environment:
|
||||||
|
18
gpxsee.pro
18
gpxsee.pro
@ -1,5 +1,5 @@
|
|||||||
TARGET = GPXSee
|
TARGET = GPXSee
|
||||||
VERSION = 4.14
|
VERSION = 4.15
|
||||||
QT += core \
|
QT += core \
|
||||||
gui \
|
gui \
|
||||||
network
|
network
|
||||||
@ -97,7 +97,13 @@ HEADERS += src/config.h \
|
|||||||
src/oddspinbox.h \
|
src/oddspinbox.h \
|
||||||
src/rectc.h \
|
src/rectc.h \
|
||||||
src/searchpointer.h \
|
src/searchpointer.h \
|
||||||
src/percentslider.h
|
src/percentslider.h \
|
||||||
|
src/elevationgraphitem.h \
|
||||||
|
src/speedgraphitem.h \
|
||||||
|
src/heartrategraphitem.h \
|
||||||
|
src/temperaturegraphitem.h \
|
||||||
|
src/cadencegraphitem.h \
|
||||||
|
src/powergraphitem.h
|
||||||
SOURCES += src/main.cpp \
|
SOURCES += src/main.cpp \
|
||||||
src/gui.cpp \
|
src/gui.cpp \
|
||||||
src/poi.cpp \
|
src/poi.cpp \
|
||||||
@ -167,7 +173,13 @@ SOURCES += src/main.cpp \
|
|||||||
src/albersequal.cpp \
|
src/albersequal.cpp \
|
||||||
src/oddspinbox.cpp \
|
src/oddspinbox.cpp \
|
||||||
src/rectc.cpp \
|
src/rectc.cpp \
|
||||||
src/percentslider.cpp
|
src/percentslider.cpp \
|
||||||
|
src/elevationgraphitem.cpp \
|
||||||
|
src/speedgraphitem.cpp \
|
||||||
|
src/heartrategraphitem.cpp \
|
||||||
|
src/temperaturegraphitem.cpp \
|
||||||
|
src/cadencegraphitem.cpp \
|
||||||
|
src/powergraphitem.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 \
|
||||||
|
@ -25,6 +25,25 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>CadenceGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Průměr</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Data</name>
|
<name>Data</name>
|
||||||
<message>
|
<message>
|
||||||
@ -82,36 +101,69 @@
|
|||||||
<translation>Výška</translation>
|
<translation>Výška</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="141"/>
|
<location filename="../src/elevationgraph.cpp" line="122"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="58"/>
|
<location filename="../src/elevationgraph.cpp" line="57"/>
|
||||||
<source>Ascent</source>
|
<source>Ascent</source>
|
||||||
<translation>Stoupání</translation>
|
<translation>Stoupání</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="60"/>
|
<location filename="../src/elevationgraph.cpp" line="59"/>
|
||||||
<source>Descent</source>
|
<source>Descent</source>
|
||||||
<translation>Klesání</translation>
|
<translation>Klesání</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="64"/>
|
<location filename="../src/elevationgraph.cpp" line="63"/>
|
||||||
<source>Minimum</source>
|
<source>Minimum</source>
|
||||||
<translation>Minimum</translation>
|
<translation>Minimum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="144"/>
|
<location filename="../src/elevationgraph.cpp" line="125"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="62"/>
|
<location filename="../src/elevationgraph.cpp" line="61"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ElevationGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="26"/>
|
||||||
|
<source>m</source>
|
||||||
|
<translation>m</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="26"/>
|
||||||
|
<source>ft</source>
|
||||||
|
<translation>ft</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="28"/>
|
||||||
|
<source>Ascent</source>
|
||||||
|
<translation>Stoupání</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="30"/>
|
||||||
|
<source>Descent</source>
|
||||||
|
<translation>Klesání</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="32"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="34"/>
|
||||||
|
<source>Minimum</source>
|
||||||
|
<translation>Minimum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ExportDialog</name>
|
<name>ExportDialog</name>
|
||||||
<message>
|
<message>
|
||||||
@ -218,24 +270,24 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>Format</name>
|
<name>Format</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="22"/>
|
<location filename="../src/format.cpp" line="26"/>
|
||||||
<location filename="../src/format.cpp" line="43"/>
|
<location filename="../src/format.cpp" line="47"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="25"/>
|
<location filename="../src/format.cpp" line="29"/>
|
||||||
<source>mi</source>
|
<source>mi</source>
|
||||||
<translation>mi</translation>
|
<translation>mi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="29"/>
|
<location filename="../src/format.cpp" line="33"/>
|
||||||
<location filename="../src/format.cpp" line="40"/>
|
<location filename="../src/format.cpp" line="44"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="32"/>
|
<location filename="../src/format.cpp" line="36"/>
|
||||||
<source>km</source>
|
<source>km</source>
|
||||||
<translation>km</translation>
|
<translation>km</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -243,17 +295,17 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>GUI</name>
|
<name>GUI</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="645"/>
|
<location filename="../src/gui.cpp" line="648"/>
|
||||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
||||||
<translation>Program GPXSee je distribuován pod podmínkami licence GNU General Public License verze 3. Pro více informací navštivte stránky programu na adrese </translation>
|
<translation>Program GPXSee je distribuován pod podmínkami licence GNU General Public License verze 3. Pro více informací navštivte stránky programu na adrese </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="725"/>
|
<location filename="../src/gui.cpp" line="733"/>
|
||||||
<source>Open file</source>
|
<source>Open file</source>
|
||||||
<translation>Otevřít soubor</translation>
|
<translation>Otevřít soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="815"/>
|
<location filename="../src/gui.cpp" line="823"/>
|
||||||
<source>Open POI file</source>
|
<source>Open POI file</source>
|
||||||
<translation>Otevřít POI soubor</translation>
|
<translation>Otevřít POI soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -264,8 +316,8 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="291"/>
|
<location filename="../src/gui.cpp" line="291"/>
|
||||||
<location filename="../src/gui.cpp" line="662"/>
|
<location filename="../src/gui.cpp" line="665"/>
|
||||||
<location filename="../src/gui.cpp" line="663"/>
|
<location filename="../src/gui.cpp" line="666"/>
|
||||||
<source>Keyboard controls</source>
|
<source>Keyboard controls</source>
|
||||||
<translation>Ovládací klávesy</translation>
|
<translation>Ovládací klávesy</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -280,20 +332,20 @@
|
|||||||
<translation>Znovu načíst</translation>
|
<translation>Znovu načíst</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="574"/>
|
<location filename="../src/gui.cpp" line="577"/>
|
||||||
<source>Show</source>
|
<source>Show</source>
|
||||||
<translation>Zobrazit</translation>
|
<translation>Zobrazit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="491"/>
|
<location filename="../src/gui.cpp" line="493"/>
|
||||||
<location filename="../src/gui.cpp" line="568"/>
|
<location filename="../src/gui.cpp" line="571"/>
|
||||||
<source>File</source>
|
<source>File</source>
|
||||||
<translation>Soubor</translation>
|
<translation>Soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="289"/>
|
<location filename="../src/gui.cpp" line="289"/>
|
||||||
<location filename="../src/gui.cpp" line="691"/>
|
<location filename="../src/gui.cpp" line="699"/>
|
||||||
<location filename="../src/gui.cpp" line="692"/>
|
<location filename="../src/gui.cpp" line="700"/>
|
||||||
<source>Data sources</source>
|
<source>Data sources</source>
|
||||||
<translation>Zdroje dat</translation>
|
<translation>Zdroje dat</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -345,7 +397,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="367"/>
|
<location filename="../src/gui.cpp" line="367"/>
|
||||||
<location filename="../src/gui.cpp" line="371"/>
|
<location filename="../src/gui.cpp" line="371"/>
|
||||||
<location filename="../src/gui.cpp" line="674"/>
|
<location filename="../src/gui.cpp" line="682"/>
|
||||||
<source>Next map</source>
|
<source>Next map</source>
|
||||||
<translation>Následující mapa</translation>
|
<translation>Následující mapa</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -375,194 +427,209 @@
|
|||||||
<translation>Zobrazit grafy</translation>
|
<translation>Zobrazit grafy</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="426"/>
|
<location filename="../src/gui.cpp" line="424"/>
|
||||||
<source>Show grid</source>
|
<source>Show grid</source>
|
||||||
<translation>Zobrazit mřížku</translation>
|
<translation>Zobrazit mřížku</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="432"/>
|
<location filename="../src/gui.cpp" line="428"/>
|
||||||
|
<source>Show slider info</source>
|
||||||
|
<translation>Zobrazit informace o posuvníku</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="434"/>
|
||||||
<source>Show toolbars</source>
|
<source>Show toolbars</source>
|
||||||
<translation>Zobrazovat nástrojové lišty</translation>
|
<translation>Zobrazovat nástrojové lišty</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="438"/>
|
<location filename="../src/gui.cpp" line="440"/>
|
||||||
<source>Total time</source>
|
<source>Total time</source>
|
||||||
<translation>Celkový čas</translation>
|
<translation>Celkový čas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="443"/>
|
<location filename="../src/gui.cpp" line="445"/>
|
||||||
<location filename="../src/gui.cpp" line="986"/>
|
<location filename="../src/gui.cpp" line="994"/>
|
||||||
<source>Moving time</source>
|
<source>Moving time</source>
|
||||||
<translation>Čistý čas</translation>
|
<translation>Čistý čas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="450"/>
|
<location filename="../src/gui.cpp" line="452"/>
|
||||||
<source>Metric</source>
|
<source>Metric</source>
|
||||||
<translation>Metrické</translation>
|
<translation>Metrické</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="455"/>
|
<location filename="../src/gui.cpp" line="457"/>
|
||||||
<source>Imperial</source>
|
<source>Imperial</source>
|
||||||
<translation>Imperiální</translation>
|
<translation>Imperiální</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="461"/>
|
<location filename="../src/gui.cpp" line="463"/>
|
||||||
<source>Fullscreen mode</source>
|
<source>Fullscreen mode</source>
|
||||||
<translation>Celoobrazovkový režim</translation>
|
<translation>Celoobrazovkový režim</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="467"/>
|
<location filename="../src/gui.cpp" line="469"/>
|
||||||
<source>Options...</source>
|
<source>Options...</source>
|
||||||
<translation>Nastavení...</translation>
|
<translation>Nastavení...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="473"/>
|
<location filename="../src/gui.cpp" line="475"/>
|
||||||
<source>Next</source>
|
<source>Next</source>
|
||||||
<translation>Následující</translation>
|
<translation>Následující</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="476"/>
|
<location filename="../src/gui.cpp" line="478"/>
|
||||||
<source>Previous</source>
|
<source>Previous</source>
|
||||||
<translation>Předchozí</translation>
|
<translation>Předchozí</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="480"/>
|
<location filename="../src/gui.cpp" line="482"/>
|
||||||
<source>Last</source>
|
<source>Last</source>
|
||||||
<translation>Poslední</translation>
|
<translation>Poslední</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="483"/>
|
<location filename="../src/gui.cpp" line="485"/>
|
||||||
<source>First</source>
|
<source>First</source>
|
||||||
<translation>První</translation>
|
<translation>První</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="505"/>
|
<location filename="../src/gui.cpp" line="507"/>
|
||||||
<source>Map</source>
|
<source>Map</source>
|
||||||
<translation>Mapa</translation>
|
<translation>Mapa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="513"/>
|
<location filename="../src/gui.cpp" line="515"/>
|
||||||
<source>Graph</source>
|
<source>Graph</source>
|
||||||
<translation>Graf</translation>
|
<translation>Graf</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="521"/>
|
<location filename="../src/gui.cpp" line="524"/>
|
||||||
<source>POI</source>
|
<source>POI</source>
|
||||||
<translation>POI</translation>
|
<translation>POI</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="522"/>
|
<location filename="../src/gui.cpp" line="525"/>
|
||||||
<source>POI files</source>
|
<source>POI files</source>
|
||||||
<translation>POI soubory</translation>
|
<translation>POI soubory</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="533"/>
|
<location filename="../src/gui.cpp" line="536"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>Data</translation>
|
<translation>Data</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="534"/>
|
<location filename="../src/gui.cpp" line="537"/>
|
||||||
<source>Display</source>
|
<source>Display</source>
|
||||||
<translation>Zobrazit</translation>
|
<translation>Zobrazit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="542"/>
|
<location filename="../src/gui.cpp" line="545"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Nastavení</translation>
|
<translation>Nastavení</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="546"/>
|
<location filename="../src/gui.cpp" line="549"/>
|
||||||
<source>Units</source>
|
<source>Units</source>
|
||||||
<translation>Jednotky</translation>
|
<translation>Jednotky</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="555"/>
|
<location filename="../src/gui.cpp" line="558"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Nápověda</translation>
|
<translation>Nápověda</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="672"/>
|
<location filename="../src/gui.cpp" line="675"/>
|
||||||
<source>Append file</source>
|
<source>Append file</source>
|
||||||
<translation>Přidat soubor</translation>
|
<translation>Přidat soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="673"/>
|
<location filename="../src/gui.cpp" line="676"/>
|
||||||
<source>Next/Previous</source>
|
<source>Next/Previous</source>
|
||||||
<translation>Následující/Předchozí</translation>
|
<translation>Následující/Předchozí</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="676"/>
|
<location filename="../src/gui.cpp" line="678"/>
|
||||||
|
<source>Toggle graph type</source>
|
||||||
|
<translation>Přepnout typ grafu</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="680"/>
|
||||||
|
<source>Toggle time type</source>
|
||||||
|
<translation>Přepnout typ času</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="684"/>
|
||||||
<source>Previous map</source>
|
<source>Previous map</source>
|
||||||
<translation>Předchozí mapa</translation>
|
<translation>Předchozí mapa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="677"/>
|
<location filename="../src/gui.cpp" line="685"/>
|
||||||
<source>Zoom in</source>
|
<source>Zoom in</source>
|
||||||
<translation>Přiblížit</translation>
|
<translation>Přiblížit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="679"/>
|
<location filename="../src/gui.cpp" line="687"/>
|
||||||
<source>Zoom out</source>
|
<source>Zoom out</source>
|
||||||
<translation>Oddálit</translation>
|
<translation>Oddálit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="681"/>
|
<location filename="../src/gui.cpp" line="689"/>
|
||||||
<source>Digital zoom</source>
|
<source>Digital zoom</source>
|
||||||
<translation>Digitální zoom</translation>
|
<translation>Digitální zoom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="682"/>
|
<location filename="../src/gui.cpp" line="690"/>
|
||||||
<source>Zoom</source>
|
<source>Zoom</source>
|
||||||
<translation>Zoom</translation>
|
<translation>Zoom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="694"/>
|
<location filename="../src/gui.cpp" line="702"/>
|
||||||
<source>Online maps</source>
|
<source>Online maps</source>
|
||||||
<translation>Online mapy</translation>
|
<translation>Online mapy</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="695"/>
|
<location filename="../src/gui.cpp" line="703"/>
|
||||||
<source>Online map URLs are read on program startup from the following file:</source>
|
<source>Online map URLs are read on program startup from the following file:</source>
|
||||||
<translation>URL online map jsou načteny při startu programu z následujícího souboru:</translation>
|
<translation>URL online map jsou načteny při startu programu z následujícího souboru:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="698"/>
|
<location filename="../src/gui.cpp" line="706"/>
|
||||||
<source>The file format is one map entry per line, consisting of the map name, tiles URL and an optional maximal zoom level delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
<source>The file format is one map entry per line, consisting of the map name, tiles URL and an optional maximal zoom level delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
||||||
<translation>Formát souboru je jeden mapový záznam na řádku, kde mapový záznam sestává ze jména mapy, URL dlaždic a volitelně maximálního zoomu navzájem oddělených tabulátorem. Souřadnice dlaždice jsou v URL nahrazeny řetězci $x a $y, zoom pak řetězcem $z. Příklad:</translation>
|
<translation>Formát souboru je jeden mapový záznam na řádku, kde mapový záznam sestává ze jména mapy, URL dlaždic a volitelně maximálního zoomu navzájem oddělených tabulátorem. Souřadnice dlaždice jsou v URL nahrazeny řetězci $x a $y, zoom pak řetězcem $z. Příklad:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="707"/>
|
<location filename="../src/gui.cpp" line="715"/>
|
||||||
<source>Offline maps are loaded on program startup from the following directory:</source>
|
<source>Offline maps are loaded on program startup from the following directory:</source>
|
||||||
<translation>Offline mapy jsou načítány při startu aplikace z následujícího adresáře:</translation>
|
<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="1179"/>
|
<location filename="../src/gui.cpp" line="1193"/>
|
||||||
<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="1215"/>
|
<location filename="../src/gui.cpp" line="1229"/>
|
||||||
<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="972"/>
|
<location filename="../src/gui.cpp" line="980"/>
|
||||||
<location filename="../src/gui.cpp" line="975"/>
|
<location filename="../src/gui.cpp" line="983"/>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Datum</translation>
|
<translation>Datum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="964"/>
|
<location filename="../src/gui.cpp" line="972"/>
|
||||||
<source>Routes</source>
|
<source>Routes</source>
|
||||||
<translation>Trasy</translation>
|
<translation>Trasy</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="1200"/>
|
<location filename="../src/gui.cpp" line="1214"/>
|
||||||
<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="1219"/>
|
<location filename="../src/gui.cpp" line="1233"/>
|
||||||
<source>%n files</source>
|
<source>%n files</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n soubor</numerusform>
|
<numerusform>%n soubor</numerusform>
|
||||||
@ -571,12 +638,12 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="666"/>
|
<location filename="../src/gui.cpp" line="669"/>
|
||||||
<source>Next file</source>
|
<source>Next file</source>
|
||||||
<translation>Následující soubor</translation>
|
<translation>Následující soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="642"/>
|
<location filename="../src/gui.cpp" line="645"/>
|
||||||
<source>Version </source>
|
<source>Version </source>
|
||||||
<translation>Verze </translation>
|
<translation>Verze </translation>
|
||||||
</message>
|
</message>
|
||||||
@ -591,12 +658,12 @@
|
|||||||
<translation>Exportovat do PDF...</translation>
|
<translation>Exportovat do PDF...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="966"/>
|
<location filename="../src/gui.cpp" line="974"/>
|
||||||
<source>Waypoints</source>
|
<source>Waypoints</source>
|
||||||
<translation>Navigační body</translation>
|
<translation>Navigační body</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="667"/>
|
<location filename="../src/gui.cpp" line="670"/>
|
||||||
<source>Previous file</source>
|
<source>Previous file</source>
|
||||||
<translation>Předchozí soubor</translation>
|
<translation>Předchozí soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -606,82 +673,82 @@
|
|||||||
<translation>Body tras</translation>
|
<translation>Body tras</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="669"/>
|
<location filename="../src/gui.cpp" line="672"/>
|
||||||
<source>First file</source>
|
<source>First file</source>
|
||||||
<translation>První soubor</translation>
|
<translation>První soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="671"/>
|
<location filename="../src/gui.cpp" line="674"/>
|
||||||
<source>Last file</source>
|
<source>Last file</source>
|
||||||
<translation>Poslední soubor</translation>
|
<translation>Poslední soubor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="706"/>
|
<location filename="../src/gui.cpp" line="714"/>
|
||||||
<source>Offline maps</source>
|
<source>Offline maps</source>
|
||||||
<translation>Offline mapy</translation>
|
<translation>Offline mapy</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="710"/>
|
<location filename="../src/gui.cpp" line="718"/>
|
||||||
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer maps and TrekBuddy maps/atlases (tared and non-tared).</source>
|
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer maps and TrekBuddy maps/atlases (tared and non-tared).</source>
|
||||||
<translation>Očekávaná struktura je jedna mapa/atlas v samostatném podadresáři. Podporované mapové formáty jsou OziExplorer mapy a TrekBuddy mapy/atlasy (včetně tar varianty).</translation>
|
<translation>Očekávaná struktura je jedna mapa/atlas v samostatném podadresáři. Podporované mapové formáty jsou OziExplorer mapy a TrekBuddy mapy/atlasy (včetně tar varianty).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="715"/>
|
<location filename="../src/gui.cpp" line="723"/>
|
||||||
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
||||||
<translation>POI soubory, které se mají automaticky nahrát při startu programu jsou načítány z následujícího adresáře:</translation>
|
<translation>POI soubory, které se mají automaticky nahrát při startu programu jsou načítány z následujícího adresáře:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="804"/>
|
<location filename="../src/gui.cpp" line="812"/>
|
||||||
<source>Error loading data file:</source>
|
<source>Error loading data file:</source>
|
||||||
<translation>Datový soubor nelze načíst:</translation>
|
<translation>Datový soubor nelze načíst:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="807"/>
|
<location filename="../src/gui.cpp" line="815"/>
|
||||||
<location filename="../src/gui.cpp" line="832"/>
|
<location filename="../src/gui.cpp" line="840"/>
|
||||||
<source>Line: %1</source>
|
<source>Line: %1</source>
|
||||||
<translation>Řádka: %1</translation>
|
<translation>Řádka: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="829"/>
|
<location filename="../src/gui.cpp" line="837"/>
|
||||||
<source>Error loading POI file:</source>
|
<source>Error loading POI file:</source>
|
||||||
<translation>Soubor POI nelze načíst:</translation>
|
<translation>Soubor POI nelze načíst:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="958"/>
|
<location filename="../src/gui.cpp" line="966"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Název</translation>
|
<translation>Název</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="962"/>
|
<location filename="../src/gui.cpp" line="970"/>
|
||||||
<source>Tracks</source>
|
<source>Tracks</source>
|
||||||
<translation>Cesty</translation>
|
<translation>Cesty</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="294"/>
|
<location filename="../src/gui.cpp" line="294"/>
|
||||||
<location filename="../src/gui.cpp" line="641"/>
|
<location filename="../src/gui.cpp" line="644"/>
|
||||||
<source>About GPXSee</source>
|
<source>About GPXSee</source>
|
||||||
<translation>O aplikaci GPXSee</translation>
|
<translation>O aplikaci GPXSee</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="579"/>
|
<location filename="../src/gui.cpp" line="582"/>
|
||||||
<source>Navigation</source>
|
<source>Navigation</source>
|
||||||
<translation>Navigace</translation>
|
<translation>Navigace</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="714"/>
|
<location filename="../src/gui.cpp" line="722"/>
|
||||||
<source>POIs</source>
|
<source>POIs</source>
|
||||||
<translation>POI body</translation>
|
<translation>POI body</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="412"/>
|
<location filename="../src/gui.cpp" line="412"/>
|
||||||
<location filename="../src/gui.cpp" line="982"/>
|
<location filename="../src/gui.cpp" line="990"/>
|
||||||
<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="418"/>
|
||||||
<location filename="../src/gui.cpp" line="543"/>
|
<location filename="../src/gui.cpp" line="546"/>
|
||||||
<location filename="../src/gui.cpp" line="984"/>
|
<location filename="../src/gui.cpp" line="992"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Čas</translation>
|
<translation>Čas</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -689,48 +756,48 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>GraphView</name>
|
<name>GraphView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="108"/>
|
<location filename="../src/graphview.cpp" line="109"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="111"/>
|
<location filename="../src/graphview.cpp" line="112"/>
|
||||||
<source>km</source>
|
<source>km</source>
|
||||||
<translation>km</translation>
|
<translation>km</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="116"/>
|
<location filename="../src/graphview.cpp" line="117"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="119"/>
|
<location filename="../src/graphview.cpp" line="120"/>
|
||||||
<source>mi</source>
|
<source>mi</source>
|
||||||
<translation>mi</translation>
|
<translation>mi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="125"/>
|
<location filename="../src/graphview.cpp" line="126"/>
|
||||||
<source>s</source>
|
<source>s</source>
|
||||||
<translation>s</translation>
|
<translation>s</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="128"/>
|
<location filename="../src/graphview.cpp" line="129"/>
|
||||||
<source>min</source>
|
<source>min</source>
|
||||||
<translation>min</translation>
|
<translation>min</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="131"/>
|
<location filename="../src/graphview.cpp" line="132"/>
|
||||||
<source>h</source>
|
<source>h</source>
|
||||||
<translation>h</translation>
|
<translation>h</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="60"/>
|
<location filename="../src/graphview.cpp" line="61"/>
|
||||||
<location filename="../src/graphview.cpp" line="157"/>
|
<location filename="../src/graphview.cpp" line="162"/>
|
||||||
<source>Distance</source>
|
<source>Distance</source>
|
||||||
<translation>Vzdálenost</translation>
|
<translation>Vzdálenost</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="159"/>
|
<location filename="../src/graphview.cpp" line="164"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Čas</translation>
|
<translation>Čas</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -759,6 +826,25 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>HeartRateGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Průměr</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MapList</name>
|
<name>MapList</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1152,6 +1238,25 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>PowerGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Průměr</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RouteItem</name>
|
<name>RouteItem</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1196,32 +1301,55 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>SpeedGraph</name>
|
<name>SpeedGraph</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="13"/>
|
<location filename="../src/speedgraph.cpp" line="14"/>
|
||||||
<location filename="../src/speedgraph.h" line="14"/>
|
<location filename="../src/speedgraph.h" line="14"/>
|
||||||
<source>Speed</source>
|
<source>Speed</source>
|
||||||
<translation>Rychlost</translation>
|
<translation>Rychlost</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="79"/>
|
<location filename="../src/speedgraph.cpp" line="82"/>
|
||||||
<source>km/h</source>
|
<source>km/h</source>
|
||||||
<translation>km/h</translation>
|
<translation>km/h</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="21"/>
|
<location filename="../src/speedgraph.cpp" line="22"/>
|
||||||
<source>Average</source>
|
<source>Average</source>
|
||||||
<translation>Průměr</translation>
|
<translation>Průměr</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="23"/>
|
<location filename="../src/speedgraph.cpp" line="24"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="82"/>
|
<location filename="../src/speedgraph.cpp" line="85"/>
|
||||||
<source>mi/h</source>
|
<source>mi/h</source>
|
||||||
<translation>mi/h</translation>
|
<translation>mi/h</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>SpeedGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="20"/>
|
||||||
|
<source>km/h</source>
|
||||||
|
<translation>km/h</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="20"/>
|
||||||
|
<source>mi/h</source>
|
||||||
|
<translation>mi/h</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="22"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="24"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Průměr</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TemperatureGraph</name>
|
<name>TemperatureGraph</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1246,16 +1374,44 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/temperaturegraph.cpp" line="81"/>
|
<location filename="../src/temperaturegraph.cpp" line="76"/>
|
||||||
<source>C</source>
|
<source>C</source>
|
||||||
<translation>C</translation>
|
<translation>C</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/temperaturegraph.cpp" line="85"/>
|
<location filename="../src/temperaturegraph.cpp" line="80"/>
|
||||||
<source>F</source>
|
<source>F</source>
|
||||||
<translation>F</translation>
|
<translation>F</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>TemperatureGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="22"/>
|
||||||
|
<source>C</source>
|
||||||
|
<translation>C</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="22"/>
|
||||||
|
<source>F</source>
|
||||||
|
<translation>F</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="24"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Průměr</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="26"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="28"/>
|
||||||
|
<source>Minimum</source>
|
||||||
|
<translation>Minimum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TrackItem</name>
|
<name>TrackItem</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -25,6 +25,25 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>CadenceGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Durchschnitt</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>Data</name>
|
<name>Data</name>
|
||||||
<message>
|
<message>
|
||||||
@ -82,36 +101,69 @@
|
|||||||
<translation>Höhe</translation>
|
<translation>Höhe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="141"/>
|
<location filename="../src/elevationgraph.cpp" line="122"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="58"/>
|
<location filename="../src/elevationgraph.cpp" line="57"/>
|
||||||
<source>Ascent</source>
|
<source>Ascent</source>
|
||||||
<translation>Steigung</translation>
|
<translation>Steigung</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="60"/>
|
<location filename="../src/elevationgraph.cpp" line="59"/>
|
||||||
<source>Descent</source>
|
<source>Descent</source>
|
||||||
<translation>Gefälle</translation>
|
<translation>Gefälle</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="64"/>
|
<location filename="../src/elevationgraph.cpp" line="63"/>
|
||||||
<source>Minimum</source>
|
<source>Minimum</source>
|
||||||
<translation>Minimum</translation>
|
<translation>Minimum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="144"/>
|
<location filename="../src/elevationgraph.cpp" line="125"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="62"/>
|
<location filename="../src/elevationgraph.cpp" line="61"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ElevationGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="26"/>
|
||||||
|
<source>m</source>
|
||||||
|
<translation>m</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="26"/>
|
||||||
|
<source>ft</source>
|
||||||
|
<translation>ft</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="28"/>
|
||||||
|
<source>Ascent</source>
|
||||||
|
<translation>Steigung</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="30"/>
|
||||||
|
<source>Descent</source>
|
||||||
|
<translation>Gefälle</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="32"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="34"/>
|
||||||
|
<source>Minimum</source>
|
||||||
|
<translation>Minimum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ExportDialog</name>
|
<name>ExportDialog</name>
|
||||||
<message>
|
<message>
|
||||||
@ -218,24 +270,24 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>Format</name>
|
<name>Format</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="22"/>
|
<location filename="../src/format.cpp" line="26"/>
|
||||||
<location filename="../src/format.cpp" line="43"/>
|
<location filename="../src/format.cpp" line="47"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="25"/>
|
<location filename="../src/format.cpp" line="29"/>
|
||||||
<source>mi</source>
|
<source>mi</source>
|
||||||
<translation>mi</translation>
|
<translation>mi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="29"/>
|
<location filename="../src/format.cpp" line="33"/>
|
||||||
<location filename="../src/format.cpp" line="40"/>
|
<location filename="../src/format.cpp" line="44"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="32"/>
|
<location filename="../src/format.cpp" line="36"/>
|
||||||
<source>km</source>
|
<source>km</source>
|
||||||
<translation>km</translation>
|
<translation>km</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -243,17 +295,17 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>GUI</name>
|
<name>GUI</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="645"/>
|
<location filename="../src/gui.cpp" line="648"/>
|
||||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
||||||
<translation>GPXSee wird unter der GNU General Public License version 3 vertrieben. Mehr Informationen zu GPXSee auf der Homepage </translation>
|
<translation>GPXSee wird unter der GNU General Public License version 3 vertrieben. Mehr Informationen zu GPXSee auf der Homepage </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="725"/>
|
<location filename="../src/gui.cpp" line="733"/>
|
||||||
<source>Open file</source>
|
<source>Open file</source>
|
||||||
<translation>Datei öffnen</translation>
|
<translation>Datei öffnen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="815"/>
|
<location filename="../src/gui.cpp" line="823"/>
|
||||||
<source>Open POI file</source>
|
<source>Open POI file</source>
|
||||||
<translation>POI Datei öffnen</translation>
|
<translation>POI Datei öffnen</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -264,8 +316,8 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="291"/>
|
<location filename="../src/gui.cpp" line="291"/>
|
||||||
<location filename="../src/gui.cpp" line="662"/>
|
<location filename="../src/gui.cpp" line="665"/>
|
||||||
<location filename="../src/gui.cpp" line="663"/>
|
<location filename="../src/gui.cpp" line="666"/>
|
||||||
<source>Keyboard controls</source>
|
<source>Keyboard controls</source>
|
||||||
<translation>Tastaturkürzel</translation>
|
<translation>Tastaturkürzel</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -280,20 +332,20 @@
|
|||||||
<translation>Neu Laden</translation>
|
<translation>Neu Laden</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="574"/>
|
<location filename="../src/gui.cpp" line="577"/>
|
||||||
<source>Show</source>
|
<source>Show</source>
|
||||||
<translation>Ansicht</translation>
|
<translation>Ansicht</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="491"/>
|
<location filename="../src/gui.cpp" line="493"/>
|
||||||
<location filename="../src/gui.cpp" line="568"/>
|
<location filename="../src/gui.cpp" line="571"/>
|
||||||
<source>File</source>
|
<source>File</source>
|
||||||
<translation>Datei</translation>
|
<translation>Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="289"/>
|
<location filename="../src/gui.cpp" line="289"/>
|
||||||
<location filename="../src/gui.cpp" line="691"/>
|
<location filename="../src/gui.cpp" line="699"/>
|
||||||
<location filename="../src/gui.cpp" line="692"/>
|
<location filename="../src/gui.cpp" line="700"/>
|
||||||
<source>Data sources</source>
|
<source>Data sources</source>
|
||||||
<translation>Datenquellen</translation>
|
<translation>Datenquellen</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -345,7 +397,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="367"/>
|
<location filename="../src/gui.cpp" line="367"/>
|
||||||
<location filename="../src/gui.cpp" line="371"/>
|
<location filename="../src/gui.cpp" line="371"/>
|
||||||
<location filename="../src/gui.cpp" line="674"/>
|
<location filename="../src/gui.cpp" line="682"/>
|
||||||
<source>Next map</source>
|
<source>Next map</source>
|
||||||
<translation>Nächste Karte</translation>
|
<translation>Nächste Karte</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -375,188 +427,203 @@
|
|||||||
<translation>Graphen anzeigen</translation>
|
<translation>Graphen anzeigen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="426"/>
|
<location filename="../src/gui.cpp" line="424"/>
|
||||||
<source>Show grid</source>
|
<source>Show grid</source>
|
||||||
<translation>Gitter anzeigen</translation>
|
<translation>Gitter anzeigen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="432"/>
|
<location filename="../src/gui.cpp" line="428"/>
|
||||||
|
<source>Show slider info</source>
|
||||||
|
<translation>Schieberinfo anzeigen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="434"/>
|
||||||
<source>Show toolbars</source>
|
<source>Show toolbars</source>
|
||||||
<translation>Toolbars anzeigen</translation>
|
<translation>Toolbars anzeigen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="438"/>
|
<location filename="../src/gui.cpp" line="440"/>
|
||||||
<source>Total time</source>
|
<source>Total time</source>
|
||||||
<translation>Gesamtzeit</translation>
|
<translation>Gesamtzeit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="443"/>
|
<location filename="../src/gui.cpp" line="445"/>
|
||||||
<location filename="../src/gui.cpp" line="986"/>
|
<location filename="../src/gui.cpp" line="994"/>
|
||||||
<source>Moving time</source>
|
<source>Moving time</source>
|
||||||
<translation>Bewegungszeit</translation>
|
<translation>Bewegungszeit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="450"/>
|
<location filename="../src/gui.cpp" line="452"/>
|
||||||
<source>Metric</source>
|
<source>Metric</source>
|
||||||
<translation>Metrisch</translation>
|
<translation>Metrisch</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="455"/>
|
<location filename="../src/gui.cpp" line="457"/>
|
||||||
<source>Imperial</source>
|
<source>Imperial</source>
|
||||||
<translation>Imperial</translation>
|
<translation>Imperial</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="461"/>
|
<location filename="../src/gui.cpp" line="463"/>
|
||||||
<source>Fullscreen mode</source>
|
<source>Fullscreen mode</source>
|
||||||
<translation>Vollbildmodus</translation>
|
<translation>Vollbildmodus</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="467"/>
|
<location filename="../src/gui.cpp" line="469"/>
|
||||||
<source>Options...</source>
|
<source>Options...</source>
|
||||||
<translation>Einstellungen...</translation>
|
<translation>Einstellungen...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="473"/>
|
<location filename="../src/gui.cpp" line="475"/>
|
||||||
<source>Next</source>
|
<source>Next</source>
|
||||||
<translation>Nächste</translation>
|
<translation>Nächste</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="476"/>
|
<location filename="../src/gui.cpp" line="478"/>
|
||||||
<source>Previous</source>
|
<source>Previous</source>
|
||||||
<translation>Vorherige</translation>
|
<translation>Vorherige</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="480"/>
|
<location filename="../src/gui.cpp" line="482"/>
|
||||||
<source>Last</source>
|
<source>Last</source>
|
||||||
<translation>Letzte</translation>
|
<translation>Letzte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="483"/>
|
<location filename="../src/gui.cpp" line="485"/>
|
||||||
<source>First</source>
|
<source>First</source>
|
||||||
<translation>Erste</translation>
|
<translation>Erste</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="505"/>
|
<location filename="../src/gui.cpp" line="507"/>
|
||||||
<source>Map</source>
|
<source>Map</source>
|
||||||
<translation>Karte</translation>
|
<translation>Karte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="513"/>
|
<location filename="../src/gui.cpp" line="515"/>
|
||||||
<source>Graph</source>
|
<source>Graph</source>
|
||||||
<translation>Graph</translation>
|
<translation>Graph</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="521"/>
|
<location filename="../src/gui.cpp" line="524"/>
|
||||||
<source>POI</source>
|
<source>POI</source>
|
||||||
<translation>POI</translation>
|
<translation>POI</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="522"/>
|
<location filename="../src/gui.cpp" line="525"/>
|
||||||
<source>POI files</source>
|
<source>POI files</source>
|
||||||
<translation>POI-Dateien</translation>
|
<translation>POI-Dateien</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="533"/>
|
<location filename="../src/gui.cpp" line="536"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>Daten</translation>
|
<translation>Daten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="534"/>
|
<location filename="../src/gui.cpp" line="537"/>
|
||||||
<source>Display</source>
|
<source>Display</source>
|
||||||
<translation>Anzeige</translation>
|
<translation>Anzeige</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="542"/>
|
<location filename="../src/gui.cpp" line="545"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Einstellungen</translation>
|
<translation>Einstellungen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="546"/>
|
<location filename="../src/gui.cpp" line="549"/>
|
||||||
<source>Units</source>
|
<source>Units</source>
|
||||||
<translation>Einheiten</translation>
|
<translation>Einheiten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="555"/>
|
<location filename="../src/gui.cpp" line="558"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Hilfe</translation>
|
<translation>Hilfe</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="672"/>
|
<location filename="../src/gui.cpp" line="675"/>
|
||||||
<source>Append file</source>
|
<source>Append file</source>
|
||||||
<translation>An Datei anhängen</translation>
|
<translation>An Datei anhängen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="673"/>
|
<location filename="../src/gui.cpp" line="676"/>
|
||||||
<source>Next/Previous</source>
|
<source>Next/Previous</source>
|
||||||
<translation>Nächste/Vorherige</translation>
|
<translation>Nächste/Vorherige</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="676"/>
|
<location filename="../src/gui.cpp" line="678"/>
|
||||||
|
<source>Toggle graph type</source>
|
||||||
|
<translation>Graphtyp umschalten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="680"/>
|
||||||
|
<source>Toggle time type</source>
|
||||||
|
<translation>Zeittyp umschalten</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="684"/>
|
||||||
<source>Previous map</source>
|
<source>Previous map</source>
|
||||||
<translation>Vorherige Karte</translation>
|
<translation>Vorherige Karte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="677"/>
|
<location filename="../src/gui.cpp" line="685"/>
|
||||||
<source>Zoom in</source>
|
<source>Zoom in</source>
|
||||||
<translation>Hineinzoomen</translation>
|
<translation>Hineinzoomen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="679"/>
|
<location filename="../src/gui.cpp" line="687"/>
|
||||||
<source>Zoom out</source>
|
<source>Zoom out</source>
|
||||||
<translation>Herauszoomen</translation>
|
<translation>Herauszoomen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="681"/>
|
<location filename="../src/gui.cpp" line="689"/>
|
||||||
<source>Digital zoom</source>
|
<source>Digital zoom</source>
|
||||||
<translation>Digitaler Zoom</translation>
|
<translation>Digitaler Zoom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="682"/>
|
<location filename="../src/gui.cpp" line="690"/>
|
||||||
<source>Zoom</source>
|
<source>Zoom</source>
|
||||||
<translation>Zoom</translation>
|
<translation>Zoom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="694"/>
|
<location filename="../src/gui.cpp" line="702"/>
|
||||||
<source>Online maps</source>
|
<source>Online maps</source>
|
||||||
<translation>Onlinekarten</translation>
|
<translation>Onlinekarten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="695"/>
|
<location filename="../src/gui.cpp" line="703"/>
|
||||||
<source>Online map URLs are read on program startup from the following file:</source>
|
<source>Online map URLs are read on program startup from the following file:</source>
|
||||||
<translation>Onlinekarten URLs werden zu Programmstart aus der folgenden Datei gelesen:</translation>
|
<translation>Onlinekarten URLs werden zu Programmstart aus der folgenden Datei gelesen:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="698"/>
|
<location filename="../src/gui.cpp" line="706"/>
|
||||||
<source>The file format is one map entry per line, consisting of the map name, tiles URL and an optional maximal zoom level delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
<source>The file format is one map entry per line, consisting of the map name, tiles URL and an optional maximal zoom level delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
||||||
<translation>Das Dateiformat ist eine Karte pro Linie. Jede Linie besteht aus dem Kartenname, der Tiles URL und wahlweise dem maximalen Zoomlevel getrennt durch ein TAB Zeichen. X und Y Koordinate einer Tile werden in der URL durch $x und $y ersetzt und das Zoomlevel durch $z. Ein Beispiel einer Kartendatei könnte so aussehen:</translation>
|
<translation>Das Dateiformat ist eine Karte pro Linie. Jede Linie besteht aus dem Kartenname, der Tiles URL und wahlweise dem maximalen Zoomlevel getrennt durch ein TAB Zeichen. X und Y Koordinate einer Tile werden in der URL durch $x und $y ersetzt und das Zoomlevel durch $z. Ein Beispiel einer Kartendatei könnte so aussehen:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="706"/>
|
<location filename="../src/gui.cpp" line="714"/>
|
||||||
<source>Offline maps</source>
|
<source>Offline maps</source>
|
||||||
<translation>Offlinekarten</translation>
|
<translation>Offlinekarten</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="707"/>
|
<location filename="../src/gui.cpp" line="715"/>
|
||||||
<source>Offline maps are loaded on program startup from the following directory:</source>
|
<source>Offline maps are loaded on program startup from the following directory:</source>
|
||||||
<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="1179"/>
|
<location filename="../src/gui.cpp" line="1193"/>
|
||||||
<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="1200"/>
|
<location filename="../src/gui.cpp" line="1214"/>
|
||||||
<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="1215"/>
|
<location filename="../src/gui.cpp" line="1229"/>
|
||||||
<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="1219"/>
|
<location filename="../src/gui.cpp" line="1233"/>
|
||||||
<source>%n files</source>
|
<source>%n files</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n Datei</numerusform>
|
<numerusform>%n Datei</numerusform>
|
||||||
@ -564,23 +631,23 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="972"/>
|
<location filename="../src/gui.cpp" line="980"/>
|
||||||
<location filename="../src/gui.cpp" line="975"/>
|
<location filename="../src/gui.cpp" line="983"/>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Datum</translation>
|
<translation>Datum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="964"/>
|
<location filename="../src/gui.cpp" line="972"/>
|
||||||
<source>Routes</source>
|
<source>Routes</source>
|
||||||
<translation>Routen</translation>
|
<translation>Routen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="666"/>
|
<location filename="../src/gui.cpp" line="669"/>
|
||||||
<source>Next file</source>
|
<source>Next file</source>
|
||||||
<translation>Nächste Datei</translation>
|
<translation>Nächste Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="642"/>
|
<location filename="../src/gui.cpp" line="645"/>
|
||||||
<source>Version </source>
|
<source>Version </source>
|
||||||
<translation>Version </translation>
|
<translation>Version </translation>
|
||||||
</message>
|
</message>
|
||||||
@ -595,12 +662,12 @@
|
|||||||
<translation>Als PDF exportieren...</translation>
|
<translation>Als PDF exportieren...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="966"/>
|
<location filename="../src/gui.cpp" line="974"/>
|
||||||
<source>Waypoints</source>
|
<source>Waypoints</source>
|
||||||
<translation>Wegpunkte</translation>
|
<translation>Wegpunkte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="667"/>
|
<location filename="../src/gui.cpp" line="670"/>
|
||||||
<source>Previous file</source>
|
<source>Previous file</source>
|
||||||
<translation>Vorherige Datei</translation>
|
<translation>Vorherige Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -610,77 +677,77 @@
|
|||||||
<translation>Routen Wegpunkte</translation>
|
<translation>Routen Wegpunkte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="669"/>
|
<location filename="../src/gui.cpp" line="672"/>
|
||||||
<source>First file</source>
|
<source>First file</source>
|
||||||
<translation>Erste Datei</translation>
|
<translation>Erste Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="671"/>
|
<location filename="../src/gui.cpp" line="674"/>
|
||||||
<source>Last file</source>
|
<source>Last file</source>
|
||||||
<translation>Letzte Datei</translation>
|
<translation>Letzte Datei</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="710"/>
|
<location filename="../src/gui.cpp" line="718"/>
|
||||||
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer maps and TrekBuddy maps/atlases (tared and non-tared).</source>
|
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer maps and TrekBuddy maps/atlases (tared and non-tared).</source>
|
||||||
<translation>Die erwartete Struktur ist eine Karte/ein Atlas pro Unterverzeichnis. Unterstützte Kartenformate sind OziExplorer Karten und TrekBuddy Karten/Atlanten (mit oder ohne tar Kompression).</translation>
|
<translation>Die erwartete Struktur ist eine Karte/ein Atlas pro Unterverzeichnis. Unterstützte Kartenformate sind OziExplorer Karten und TrekBuddy Karten/Atlanten (mit oder ohne tar Kompression).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="715"/>
|
<location filename="../src/gui.cpp" line="723"/>
|
||||||
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
||||||
<translation>Damit GPXSee zu Programmstart automatisch eine POI-Datei lädt, fügen Sie diese zu folgendem Verzeichnis hinzu:</translation>
|
<translation>Damit GPXSee zu Programmstart automatisch eine POI-Datei lädt, fügen Sie diese zu folgendem Verzeichnis hinzu:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="804"/>
|
<location filename="../src/gui.cpp" line="812"/>
|
||||||
<source>Error loading data file:</source>
|
<source>Error loading data file:</source>
|
||||||
<translation>Fehler beim Laden der Datei:</translation>
|
<translation>Fehler beim Laden der Datei:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="807"/>
|
<location filename="../src/gui.cpp" line="815"/>
|
||||||
<location filename="../src/gui.cpp" line="832"/>
|
<location filename="../src/gui.cpp" line="840"/>
|
||||||
<source>Line: %1</source>
|
<source>Line: %1</source>
|
||||||
<translation>Linie: %1</translation>
|
<translation>Linie: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="829"/>
|
<location filename="../src/gui.cpp" line="837"/>
|
||||||
<source>Error loading POI file:</source>
|
<source>Error loading POI file:</source>
|
||||||
<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="958"/>
|
<location filename="../src/gui.cpp" line="966"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Name</translation>
|
<translation>Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="962"/>
|
<location filename="../src/gui.cpp" line="970"/>
|
||||||
<source>Tracks</source>
|
<source>Tracks</source>
|
||||||
<translation>Strecken</translation>
|
<translation>Strecken</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="294"/>
|
<location filename="../src/gui.cpp" line="294"/>
|
||||||
<location filename="../src/gui.cpp" line="641"/>
|
<location filename="../src/gui.cpp" line="644"/>
|
||||||
<source>About GPXSee</source>
|
<source>About GPXSee</source>
|
||||||
<translation>Über GPXSee</translation>
|
<translation>Über GPXSee</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="579"/>
|
<location filename="../src/gui.cpp" line="582"/>
|
||||||
<source>Navigation</source>
|
<source>Navigation</source>
|
||||||
<translation>Navigation</translation>
|
<translation>Navigation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="714"/>
|
<location filename="../src/gui.cpp" line="722"/>
|
||||||
<source>POIs</source>
|
<source>POIs</source>
|
||||||
<translation>POIs</translation>
|
<translation>POIs</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="412"/>
|
<location filename="../src/gui.cpp" line="412"/>
|
||||||
<location filename="../src/gui.cpp" line="982"/>
|
<location filename="../src/gui.cpp" line="990"/>
|
||||||
<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="418"/>
|
||||||
<location filename="../src/gui.cpp" line="543"/>
|
<location filename="../src/gui.cpp" line="546"/>
|
||||||
<location filename="../src/gui.cpp" line="984"/>
|
<location filename="../src/gui.cpp" line="992"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Zeit</translation>
|
<translation>Zeit</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -688,48 +755,48 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>GraphView</name>
|
<name>GraphView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="108"/>
|
<location filename="../src/graphview.cpp" line="109"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="111"/>
|
<location filename="../src/graphview.cpp" line="112"/>
|
||||||
<source>km</source>
|
<source>km</source>
|
||||||
<translation>km</translation>
|
<translation>km</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="116"/>
|
<location filename="../src/graphview.cpp" line="117"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="119"/>
|
<location filename="../src/graphview.cpp" line="120"/>
|
||||||
<source>mi</source>
|
<source>mi</source>
|
||||||
<translation>mi</translation>
|
<translation>mi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="125"/>
|
<location filename="../src/graphview.cpp" line="126"/>
|
||||||
<source>s</source>
|
<source>s</source>
|
||||||
<translation>sek</translation>
|
<translation>sek</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="128"/>
|
<location filename="../src/graphview.cpp" line="129"/>
|
||||||
<source>min</source>
|
<source>min</source>
|
||||||
<translation>min</translation>
|
<translation>min</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="131"/>
|
<location filename="../src/graphview.cpp" line="132"/>
|
||||||
<source>h</source>
|
<source>h</source>
|
||||||
<translation>tim</translation>
|
<translation>tim</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="60"/>
|
<location filename="../src/graphview.cpp" line="61"/>
|
||||||
<location filename="../src/graphview.cpp" line="157"/>
|
<location filename="../src/graphview.cpp" line="162"/>
|
||||||
<source>Distance</source>
|
<source>Distance</source>
|
||||||
<translation>Distanz</translation>
|
<translation>Distanz</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="159"/>
|
<location filename="../src/graphview.cpp" line="164"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Zeit</translation>
|
<translation>Zeit</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -758,6 +825,25 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>HeartRateGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Durchschnitt</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MapList</name>
|
<name>MapList</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1151,6 +1237,25 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>PowerGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Durchschnitt</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RouteItem</name>
|
<name>RouteItem</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1195,32 +1300,55 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>SpeedGraph</name>
|
<name>SpeedGraph</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="13"/>
|
<location filename="../src/speedgraph.cpp" line="14"/>
|
||||||
<location filename="../src/speedgraph.h" line="14"/>
|
<location filename="../src/speedgraph.h" line="14"/>
|
||||||
<source>Speed</source>
|
<source>Speed</source>
|
||||||
<translation>Geschwindigkeit</translation>
|
<translation>Geschwindigkeit</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="79"/>
|
<location filename="../src/speedgraph.cpp" line="82"/>
|
||||||
<source>km/h</source>
|
<source>km/h</source>
|
||||||
<translation>km/h</translation>
|
<translation>km/h</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="21"/>
|
<location filename="../src/speedgraph.cpp" line="22"/>
|
||||||
<source>Average</source>
|
<source>Average</source>
|
||||||
<translation>Durchschnitt</translation>
|
<translation>Durchschnitt</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="23"/>
|
<location filename="../src/speedgraph.cpp" line="24"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="82"/>
|
<location filename="../src/speedgraph.cpp" line="85"/>
|
||||||
<source>mi/h</source>
|
<source>mi/h</source>
|
||||||
<translation>mi/h</translation>
|
<translation>mi/h</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>SpeedGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="20"/>
|
||||||
|
<source>km/h</source>
|
||||||
|
<translation>km/h</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="20"/>
|
||||||
|
<source>mi/h</source>
|
||||||
|
<translation>mi/h</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="22"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="24"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Durchschnitt</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TemperatureGraph</name>
|
<name>TemperatureGraph</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1245,16 +1373,44 @@
|
|||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/temperaturegraph.cpp" line="81"/>
|
<location filename="../src/temperaturegraph.cpp" line="76"/>
|
||||||
<source>C</source>
|
<source>C</source>
|
||||||
<translation>C</translation>
|
<translation>C</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/temperaturegraph.cpp" line="85"/>
|
<location filename="../src/temperaturegraph.cpp" line="80"/>
|
||||||
<source>F</source>
|
<source>F</source>
|
||||||
<translation>F</translation>
|
<translation>F</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>TemperatureGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="22"/>
|
||||||
|
<source>C</source>
|
||||||
|
<translation>C</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="22"/>
|
||||||
|
<source>F</source>
|
||||||
|
<translation>F</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="24"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Durchschnitt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="26"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="28"/>
|
||||||
|
<source>Minimum</source>
|
||||||
|
<translation>Minimum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TrackItem</name>
|
<name>TrackItem</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -22,7 +22,26 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/cadencegraph.cpp" line="21"/>
|
<location filename="../src/cadencegraph.cpp" line="21"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Maximal</translation>
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>CadenceGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/cadencegraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Medel</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -82,36 +101,69 @@
|
|||||||
<translation>Höjd</translation>
|
<translation>Höjd</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="141"/>
|
<location filename="../src/elevationgraph.cpp" line="122"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="58"/>
|
<location filename="../src/elevationgraph.cpp" line="57"/>
|
||||||
<source>Ascent</source>
|
<source>Ascent</source>
|
||||||
<translation>Stigning</translation>
|
<translation>Stigning</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="60"/>
|
<location filename="../src/elevationgraph.cpp" line="59"/>
|
||||||
<source>Descent</source>
|
<source>Descent</source>
|
||||||
<translation>Nedstigning</translation>
|
<translation>Nedstigning</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="64"/>
|
<location filename="../src/elevationgraph.cpp" line="63"/>
|
||||||
<source>Minimum</source>
|
<source>Minimum</source>
|
||||||
<translation>Minimum</translation>
|
<translation>Minimum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="144"/>
|
<location filename="../src/elevationgraph.cpp" line="125"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/elevationgraph.cpp" line="62"/>
|
<location filename="../src/elevationgraph.cpp" line="61"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Maximum</translation>
|
<translation>Maximum</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ElevationGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="26"/>
|
||||||
|
<source>m</source>
|
||||||
|
<translation>m</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="26"/>
|
||||||
|
<source>ft</source>
|
||||||
|
<translation>ft</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="28"/>
|
||||||
|
<source>Ascent</source>
|
||||||
|
<translation>Stigning</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="30"/>
|
||||||
|
<source>Descent</source>
|
||||||
|
<translation>Nedstigning</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="32"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/elevationgraphitem.cpp" line="34"/>
|
||||||
|
<source>Minimum</source>
|
||||||
|
<translation>Minimum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ExportDialog</name>
|
<name>ExportDialog</name>
|
||||||
<message>
|
<message>
|
||||||
@ -218,24 +270,24 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>Format</name>
|
<name>Format</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="22"/>
|
<location filename="../src/format.cpp" line="26"/>
|
||||||
<location filename="../src/format.cpp" line="43"/>
|
<location filename="../src/format.cpp" line="47"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="25"/>
|
<location filename="../src/format.cpp" line="29"/>
|
||||||
<source>mi</source>
|
<source>mi</source>
|
||||||
<translation>mi</translation>
|
<translation>mi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="29"/>
|
<location filename="../src/format.cpp" line="33"/>
|
||||||
<location filename="../src/format.cpp" line="40"/>
|
<location filename="../src/format.cpp" line="44"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/format.cpp" line="32"/>
|
<location filename="../src/format.cpp" line="36"/>
|
||||||
<source>km</source>
|
<source>km</source>
|
||||||
<translation>km</translation>
|
<translation>km</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -243,17 +295,17 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>GUI</name>
|
<name>GUI</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="645"/>
|
<location filename="../src/gui.cpp" line="648"/>
|
||||||
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
|
||||||
<translation>GPXSee distribueras under vilkoren för GNU General Public License version 3. För mer info om GPXSee, besök hemsidan på </translation>
|
<translation>GPXSee distribueras under vilkoren för GNU General Public License version 3. För mer info om GPXSee, besök hemsidan på </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="725"/>
|
<location filename="../src/gui.cpp" line="733"/>
|
||||||
<source>Open file</source>
|
<source>Open file</source>
|
||||||
<translation>Öppna fil</translation>
|
<translation>Öppna fil</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="815"/>
|
<location filename="../src/gui.cpp" line="823"/>
|
||||||
<source>Open POI file</source>
|
<source>Open POI file</source>
|
||||||
<translation>Öppna POI-fil</translation>
|
<translation>Öppna POI-fil</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -264,8 +316,8 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="291"/>
|
<location filename="../src/gui.cpp" line="291"/>
|
||||||
<location filename="../src/gui.cpp" line="662"/>
|
<location filename="../src/gui.cpp" line="665"/>
|
||||||
<location filename="../src/gui.cpp" line="663"/>
|
<location filename="../src/gui.cpp" line="666"/>
|
||||||
<source>Keyboard controls</source>
|
<source>Keyboard controls</source>
|
||||||
<translation>Snabbtangenter</translation>
|
<translation>Snabbtangenter</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -280,20 +332,20 @@
|
|||||||
<translation>Uppdatera</translation>
|
<translation>Uppdatera</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="574"/>
|
<location filename="../src/gui.cpp" line="577"/>
|
||||||
<source>Show</source>
|
<source>Show</source>
|
||||||
<translation>Visa</translation>
|
<translation>Visa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="491"/>
|
<location filename="../src/gui.cpp" line="493"/>
|
||||||
<location filename="../src/gui.cpp" line="568"/>
|
<location filename="../src/gui.cpp" line="571"/>
|
||||||
<source>File</source>
|
<source>File</source>
|
||||||
<translation>Arkiv</translation>
|
<translation>Arkiv</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="289"/>
|
<location filename="../src/gui.cpp" line="289"/>
|
||||||
<location filename="../src/gui.cpp" line="691"/>
|
<location filename="../src/gui.cpp" line="699"/>
|
||||||
<location filename="../src/gui.cpp" line="692"/>
|
<location filename="../src/gui.cpp" line="700"/>
|
||||||
<source>Data sources</source>
|
<source>Data sources</source>
|
||||||
<translation>Datakällor</translation>
|
<translation>Datakällor</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -345,7 +397,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="367"/>
|
<location filename="../src/gui.cpp" line="367"/>
|
||||||
<location filename="../src/gui.cpp" line="371"/>
|
<location filename="../src/gui.cpp" line="371"/>
|
||||||
<location filename="../src/gui.cpp" line="674"/>
|
<location filename="../src/gui.cpp" line="682"/>
|
||||||
<source>Next map</source>
|
<source>Next map</source>
|
||||||
<translation>Nästa karta</translation>
|
<translation>Nästa karta</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -375,188 +427,203 @@
|
|||||||
<translation>Visa diagram</translation>
|
<translation>Visa diagram</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="426"/>
|
<location filename="../src/gui.cpp" line="424"/>
|
||||||
<source>Show grid</source>
|
<source>Show grid</source>
|
||||||
<translation>Visa stödlinjer</translation>
|
<translation>Visa stödlinjer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="432"/>
|
<location filename="../src/gui.cpp" line="428"/>
|
||||||
|
<source>Show slider info</source>
|
||||||
|
<translation>Visa reglageinfo</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="434"/>
|
||||||
<source>Show toolbars</source>
|
<source>Show toolbars</source>
|
||||||
<translation>Visa verktygsfält</translation>
|
<translation>Visa verktygsfält</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="438"/>
|
<location filename="../src/gui.cpp" line="440"/>
|
||||||
<source>Total time</source>
|
<source>Total time</source>
|
||||||
<translation>Total tid</translation>
|
<translation>Total tid</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="443"/>
|
<location filename="../src/gui.cpp" line="445"/>
|
||||||
<location filename="../src/gui.cpp" line="986"/>
|
<location filename="../src/gui.cpp" line="994"/>
|
||||||
<source>Moving time</source>
|
<source>Moving time</source>
|
||||||
<translation>Förflyttningstid</translation>
|
<translation>Förflyttningstid</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="450"/>
|
<location filename="../src/gui.cpp" line="452"/>
|
||||||
<source>Metric</source>
|
<source>Metric</source>
|
||||||
<translation>Meter</translation>
|
<translation>Meter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="455"/>
|
<location filename="../src/gui.cpp" line="457"/>
|
||||||
<source>Imperial</source>
|
<source>Imperial</source>
|
||||||
<translation>Imperial</translation>
|
<translation>Imperial</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="461"/>
|
<location filename="../src/gui.cpp" line="463"/>
|
||||||
<source>Fullscreen mode</source>
|
<source>Fullscreen mode</source>
|
||||||
<translation>Helskärmsläge</translation>
|
<translation>Helskärmsläge</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="467"/>
|
<location filename="../src/gui.cpp" line="469"/>
|
||||||
<source>Options...</source>
|
<source>Options...</source>
|
||||||
<translation>Alternativ...</translation>
|
<translation>Alternativ...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="473"/>
|
<location filename="../src/gui.cpp" line="475"/>
|
||||||
<source>Next</source>
|
<source>Next</source>
|
||||||
<translation>Nästa</translation>
|
<translation>Nästa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="476"/>
|
<location filename="../src/gui.cpp" line="478"/>
|
||||||
<source>Previous</source>
|
<source>Previous</source>
|
||||||
<translation>Föregående</translation>
|
<translation>Föregående</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="480"/>
|
<location filename="../src/gui.cpp" line="482"/>
|
||||||
<source>Last</source>
|
<source>Last</source>
|
||||||
<translation>Sista</translation>
|
<translation>Sista</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="483"/>
|
<location filename="../src/gui.cpp" line="485"/>
|
||||||
<source>First</source>
|
<source>First</source>
|
||||||
<translation>Första</translation>
|
<translation>Första</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="505"/>
|
<location filename="../src/gui.cpp" line="507"/>
|
||||||
<source>Map</source>
|
<source>Map</source>
|
||||||
<translation>Karta</translation>
|
<translation>Karta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="513"/>
|
<location filename="../src/gui.cpp" line="515"/>
|
||||||
<source>Graph</source>
|
<source>Graph</source>
|
||||||
<translation>Diagram</translation>
|
<translation>Diagram</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="521"/>
|
<location filename="../src/gui.cpp" line="524"/>
|
||||||
<source>POI</source>
|
<source>POI</source>
|
||||||
<translation>POI</translation>
|
<translation>POI</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="522"/>
|
<location filename="../src/gui.cpp" line="525"/>
|
||||||
<source>POI files</source>
|
<source>POI files</source>
|
||||||
<translation>POI-filer</translation>
|
<translation>POI-filer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="533"/>
|
<location filename="../src/gui.cpp" line="536"/>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>Data</translation>
|
<translation>Data</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="534"/>
|
<location filename="../src/gui.cpp" line="537"/>
|
||||||
<source>Display</source>
|
<source>Display</source>
|
||||||
<translation>Visa</translation>
|
<translation>Visa</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="542"/>
|
<location filename="../src/gui.cpp" line="545"/>
|
||||||
<source>Settings</source>
|
<source>Settings</source>
|
||||||
<translation>Inställningar</translation>
|
<translation>Inställningar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="546"/>
|
<location filename="../src/gui.cpp" line="549"/>
|
||||||
<source>Units</source>
|
<source>Units</source>
|
||||||
<translation>Enhet</translation>
|
<translation>Enhet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="555"/>
|
<location filename="../src/gui.cpp" line="558"/>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
<translation>Hjälp</translation>
|
<translation>Hjälp</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="672"/>
|
<location filename="../src/gui.cpp" line="675"/>
|
||||||
<source>Append file</source>
|
<source>Append file</source>
|
||||||
<translation>Lägg till fil</translation>
|
<translation>Lägg till fil</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="673"/>
|
<location filename="../src/gui.cpp" line="676"/>
|
||||||
<source>Next/Previous</source>
|
<source>Next/Previous</source>
|
||||||
<translation>Nästa/Föregående</translation>
|
<translation>Nästa/Föregående</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="676"/>
|
<location filename="../src/gui.cpp" line="678"/>
|
||||||
|
<source>Toggle graph type</source>
|
||||||
|
<translation>Växla diagramtyp</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="680"/>
|
||||||
|
<source>Toggle time type</source>
|
||||||
|
<translation>Växla tidstyp</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/gui.cpp" line="684"/>
|
||||||
<source>Previous map</source>
|
<source>Previous map</source>
|
||||||
<translation>Föregående karta</translation>
|
<translation>Föregående karta</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="677"/>
|
<location filename="../src/gui.cpp" line="685"/>
|
||||||
<source>Zoom in</source>
|
<source>Zoom in</source>
|
||||||
<translation>Zooma in</translation>
|
<translation>Zooma in</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="679"/>
|
<location filename="../src/gui.cpp" line="687"/>
|
||||||
<source>Zoom out</source>
|
<source>Zoom out</source>
|
||||||
<translation>Zooma ut</translation>
|
<translation>Zooma ut</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="681"/>
|
<location filename="../src/gui.cpp" line="689"/>
|
||||||
<source>Digital zoom</source>
|
<source>Digital zoom</source>
|
||||||
<translation>Digital zoom</translation>
|
<translation>Digital zoom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="682"/>
|
<location filename="../src/gui.cpp" line="690"/>
|
||||||
<source>Zoom</source>
|
<source>Zoom</source>
|
||||||
<translation>Zoom</translation>
|
<translation>Zoom</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="694"/>
|
<location filename="../src/gui.cpp" line="702"/>
|
||||||
<source>Online maps</source>
|
<source>Online maps</source>
|
||||||
<translation>Online-kartor</translation>
|
<translation>Online-kartor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="695"/>
|
<location filename="../src/gui.cpp" line="703"/>
|
||||||
<source>Online map URLs are read on program startup from the following file:</source>
|
<source>Online map URLs are read on program startup from the following file:</source>
|
||||||
<translation>Online-kartors URL:er, läses från följande fil vid programstart:</translation>
|
<translation>Online-kartors URL:er, läses från följande fil vid programstart:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="698"/>
|
<location filename="../src/gui.cpp" line="706"/>
|
||||||
<source>The file format is one map entry per line, consisting of the map name, tiles URL and an optional maximal zoom level delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
<source>The file format is one map entry per line, consisting of the map name, tiles URL and an optional maximal zoom level delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
|
||||||
<translation>Filformatet är en kartpost per rad, bestående av kartans namn, webbadress och maximal zoomnivå om tillämpligt, Kartrutans X- och Y-koordinater ersätts med $x och $y, i webbadressen och zoomnivån ersätts med $z. Ett exempel på en kartfil kan se ut så här:</translation>
|
<translation>Filformatet är en kartpost per rad, bestående av kartans namn, webbadress och maximal zoomnivå om tillämpligt, Kartrutans X- och Y-koordinater ersätts med $x och $y, i webbadressen och zoomnivån ersätts med $z. Ett exempel på en kartfil kan se ut så här:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="706"/>
|
<location filename="../src/gui.cpp" line="714"/>
|
||||||
<source>Offline maps</source>
|
<source>Offline maps</source>
|
||||||
<translation>Offline-kartor</translation>
|
<translation>Offline-kartor</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="707"/>
|
<location filename="../src/gui.cpp" line="715"/>
|
||||||
<source>Offline maps are loaded on program startup from the following directory:</source>
|
<source>Offline maps are loaded on program startup from the following directory:</source>
|
||||||
<translation>Offline-kartor läses in från följande mapp vid programstart:</translation>
|
<translation>Offline-kartor läses in från följande mapp vid programstart:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="1179"/>
|
<location filename="../src/gui.cpp" line="1193"/>
|
||||||
<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="1200"/>
|
<location filename="../src/gui.cpp" line="1214"/>
|
||||||
<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="1215"/>
|
<location filename="../src/gui.cpp" line="1229"/>
|
||||||
<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="1219"/>
|
<location filename="../src/gui.cpp" line="1233"/>
|
||||||
<source>%n files</source>
|
<source>%n files</source>
|
||||||
<translation>
|
<translation>
|
||||||
<numerusform>%n filer</numerusform>
|
<numerusform>%n filer</numerusform>
|
||||||
@ -564,23 +631,23 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="972"/>
|
<location filename="../src/gui.cpp" line="980"/>
|
||||||
<location filename="../src/gui.cpp" line="975"/>
|
<location filename="../src/gui.cpp" line="983"/>
|
||||||
<source>Date</source>
|
<source>Date</source>
|
||||||
<translation>Datum</translation>
|
<translation>Datum</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="964"/>
|
<location filename="../src/gui.cpp" line="972"/>
|
||||||
<source>Routes</source>
|
<source>Routes</source>
|
||||||
<translation>Rutter</translation>
|
<translation>Rutter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="666"/>
|
<location filename="../src/gui.cpp" line="669"/>
|
||||||
<source>Next file</source>
|
<source>Next file</source>
|
||||||
<translation>Nästa fil</translation>
|
<translation>Nästa fil</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="642"/>
|
<location filename="../src/gui.cpp" line="645"/>
|
||||||
<source>Version </source>
|
<source>Version </source>
|
||||||
<translation>Version </translation>
|
<translation>Version </translation>
|
||||||
</message>
|
</message>
|
||||||
@ -595,12 +662,12 @@
|
|||||||
<translation>Exportera till PDF...</translation>
|
<translation>Exportera till PDF...</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="966"/>
|
<location filename="../src/gui.cpp" line="974"/>
|
||||||
<source>Waypoints</source>
|
<source>Waypoints</source>
|
||||||
<translation>Vägpunkter</translation>
|
<translation>Vägpunkter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="667"/>
|
<location filename="../src/gui.cpp" line="670"/>
|
||||||
<source>Previous file</source>
|
<source>Previous file</source>
|
||||||
<translation>Föregående fil</translation>
|
<translation>Föregående fil</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -610,77 +677,77 @@
|
|||||||
<translation>Ruttvägpunkter</translation>
|
<translation>Ruttvägpunkter</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="669"/>
|
<location filename="../src/gui.cpp" line="672"/>
|
||||||
<source>First file</source>
|
<source>First file</source>
|
||||||
<translation>Första filen</translation>
|
<translation>Första filen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="671"/>
|
<location filename="../src/gui.cpp" line="674"/>
|
||||||
<source>Last file</source>
|
<source>Last file</source>
|
||||||
<translation>Sista filen</translation>
|
<translation>Sista filen</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="710"/>
|
<location filename="../src/gui.cpp" line="718"/>
|
||||||
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer maps and TrekBuddy maps/atlases (tared and non-tared).</source>
|
<source>The expected structure is one map/atlas in a separate subdirectory. Supported map formats are OziExplorer maps and TrekBuddy maps/atlases (tared and non-tared).</source>
|
||||||
<translation>Den förväntade strukturen är en karta/atlas i en separat undermapp. Kartformat som stöds är OziExplorer kartor och TrekBuddy-kartor/-kartsamlingar (tarerade och icke tarerade).</translation>
|
<translation>Den förväntade strukturen är en karta/atlas i en separat undermapp. Kartformat som stöds är OziExplorer kartor och TrekBuddy-kartor/-kartsamlingar (tarerade och icke tarerade).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="715"/>
|
<location filename="../src/gui.cpp" line="723"/>
|
||||||
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
|
||||||
<translation>För att GPXSee skall läsa in en POI-fil automatiskt vid programstart, läggs filen i följande mapp:</translation>
|
<translation>För att GPXSee skall läsa in en POI-fil automatiskt vid programstart, läggs filen i följande mapp:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="804"/>
|
<location filename="../src/gui.cpp" line="812"/>
|
||||||
<source>Error loading data file:</source>
|
<source>Error loading data file:</source>
|
||||||
<translation>Fel vid inläsning av datafil:</translation>
|
<translation>Fel vid inläsning av datafil:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="807"/>
|
<location filename="../src/gui.cpp" line="815"/>
|
||||||
<location filename="../src/gui.cpp" line="832"/>
|
<location filename="../src/gui.cpp" line="840"/>
|
||||||
<source>Line: %1</source>
|
<source>Line: %1</source>
|
||||||
<translation>Rad: %1</translation>
|
<translation>Rad: %1</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="829"/>
|
<location filename="../src/gui.cpp" line="837"/>
|
||||||
<source>Error loading POI file:</source>
|
<source>Error loading POI file:</source>
|
||||||
<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="958"/>
|
<location filename="../src/gui.cpp" line="966"/>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation>Namn</translation>
|
<translation>Namn</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="962"/>
|
<location filename="../src/gui.cpp" line="970"/>
|
||||||
<source>Tracks</source>
|
<source>Tracks</source>
|
||||||
<translation>Spår</translation>
|
<translation>Spår</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="294"/>
|
<location filename="../src/gui.cpp" line="294"/>
|
||||||
<location filename="../src/gui.cpp" line="641"/>
|
<location filename="../src/gui.cpp" line="644"/>
|
||||||
<source>About GPXSee</source>
|
<source>About GPXSee</source>
|
||||||
<translation>Om GPXSee</translation>
|
<translation>Om GPXSee</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="579"/>
|
<location filename="../src/gui.cpp" line="582"/>
|
||||||
<source>Navigation</source>
|
<source>Navigation</source>
|
||||||
<translation>Navigation</translation>
|
<translation>Navigation</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="714"/>
|
<location filename="../src/gui.cpp" line="722"/>
|
||||||
<source>POIs</source>
|
<source>POIs</source>
|
||||||
<translation>POI:er</translation>
|
<translation>POI:er</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/gui.cpp" line="412"/>
|
<location filename="../src/gui.cpp" line="412"/>
|
||||||
<location filename="../src/gui.cpp" line="982"/>
|
<location filename="../src/gui.cpp" line="990"/>
|
||||||
<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="418"/>
|
||||||
<location filename="../src/gui.cpp" line="543"/>
|
<location filename="../src/gui.cpp" line="546"/>
|
||||||
<location filename="../src/gui.cpp" line="984"/>
|
<location filename="../src/gui.cpp" line="992"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Tid</translation>
|
<translation>Tid</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -688,48 +755,48 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>GraphView</name>
|
<name>GraphView</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="108"/>
|
<location filename="../src/graphview.cpp" line="109"/>
|
||||||
<source>m</source>
|
<source>m</source>
|
||||||
<translation>m</translation>
|
<translation>m</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="111"/>
|
<location filename="../src/graphview.cpp" line="112"/>
|
||||||
<source>km</source>
|
<source>km</source>
|
||||||
<translation>km</translation>
|
<translation>km</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="116"/>
|
<location filename="../src/graphview.cpp" line="117"/>
|
||||||
<source>ft</source>
|
<source>ft</source>
|
||||||
<translation>ft</translation>
|
<translation>ft</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="119"/>
|
<location filename="../src/graphview.cpp" line="120"/>
|
||||||
<source>mi</source>
|
<source>mi</source>
|
||||||
<translation>mi</translation>
|
<translation>mi</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="125"/>
|
<location filename="../src/graphview.cpp" line="126"/>
|
||||||
<source>s</source>
|
<source>s</source>
|
||||||
<translation>sek</translation>
|
<translation>sek</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="128"/>
|
<location filename="../src/graphview.cpp" line="129"/>
|
||||||
<source>min</source>
|
<source>min</source>
|
||||||
<translation>min</translation>
|
<translation>min</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="131"/>
|
<location filename="../src/graphview.cpp" line="132"/>
|
||||||
<source>h</source>
|
<source>h</source>
|
||||||
<translation>tim</translation>
|
<translation>tim</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="60"/>
|
<location filename="../src/graphview.cpp" line="61"/>
|
||||||
<location filename="../src/graphview.cpp" line="157"/>
|
<location filename="../src/graphview.cpp" line="162"/>
|
||||||
<source>Distance</source>
|
<source>Distance</source>
|
||||||
<translation>Avstånd</translation>
|
<translation>Avstånd</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/graphview.cpp" line="159"/>
|
<location filename="../src/graphview.cpp" line="164"/>
|
||||||
<source>Time</source>
|
<source>Time</source>
|
||||||
<translation>Tid</translation>
|
<translation>Tid</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -758,6 +825,25 @@
|
|||||||
<translation>Max</translation>
|
<translation>Max</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>HeartRateGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/heartrategraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Medel</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MapList</name>
|
<name>MapList</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1151,6 +1237,25 @@
|
|||||||
<translation>Max</translation>
|
<translation>Max</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>PowerGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="20"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="21"/>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="23"/>
|
||||||
|
<source>1/min</source>
|
||||||
|
<translation>1/min</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/powergraphitem.cpp" line="22"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Medel</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>RouteItem</name>
|
<name>RouteItem</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1195,32 +1300,55 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>SpeedGraph</name>
|
<name>SpeedGraph</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="13"/>
|
<location filename="../src/speedgraph.cpp" line="14"/>
|
||||||
<location filename="../src/speedgraph.h" line="14"/>
|
<location filename="../src/speedgraph.h" line="14"/>
|
||||||
<source>Speed</source>
|
<source>Speed</source>
|
||||||
<translation>Hastighet</translation>
|
<translation>Hastighet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="79"/>
|
<location filename="../src/speedgraph.cpp" line="82"/>
|
||||||
<source>km/h</source>
|
<source>km/h</source>
|
||||||
<translation>km/h</translation>
|
<translation>km/h</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="21"/>
|
<location filename="../src/speedgraph.cpp" line="22"/>
|
||||||
<source>Average</source>
|
<source>Average</source>
|
||||||
<translation>Medel</translation>
|
<translation>Medel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="23"/>
|
<location filename="../src/speedgraph.cpp" line="24"/>
|
||||||
<source>Maximum</source>
|
<source>Maximum</source>
|
||||||
<translation>Max</translation>
|
<translation>Max</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/speedgraph.cpp" line="82"/>
|
<location filename="../src/speedgraph.cpp" line="85"/>
|
||||||
<source>mi/h</source>
|
<source>mi/h</source>
|
||||||
<translation>mi/h</translation>
|
<translation>mi/h</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>SpeedGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="20"/>
|
||||||
|
<source>km/h</source>
|
||||||
|
<translation>km/h</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="20"/>
|
||||||
|
<source>mi/h</source>
|
||||||
|
<translation>mi/h</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="22"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/speedgraphitem.cpp" line="24"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Medel</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TemperatureGraph</name>
|
<name>TemperatureGraph</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1245,16 +1373,44 @@
|
|||||||
<translation>Max</translation>
|
<translation>Max</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/temperaturegraph.cpp" line="81"/>
|
<location filename="../src/temperaturegraph.cpp" line="76"/>
|
||||||
<source>C</source>
|
<source>C</source>
|
||||||
<translation>C</translation>
|
<translation>C</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/temperaturegraph.cpp" line="85"/>
|
<location filename="../src/temperaturegraph.cpp" line="80"/>
|
||||||
<source>F</source>
|
<source>F</source>
|
||||||
<translation>F</translation>
|
<translation>F</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>TemperatureGraphItem</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="22"/>
|
||||||
|
<source>C</source>
|
||||||
|
<translation>C</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="22"/>
|
||||||
|
<source>F</source>
|
||||||
|
<translation>F</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="24"/>
|
||||||
|
<source>Average</source>
|
||||||
|
<translation>Medel</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="26"/>
|
||||||
|
<source>Maximum</source>
|
||||||
|
<translation>Maximum</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/temperaturegraphitem.cpp" line="28"/>
|
||||||
|
<source>Minimum</source>
|
||||||
|
<translation>Minimum</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TrackItem</name>
|
<name>TrackItem</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -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.14"
|
!define VERSION "4.15"
|
||||||
|
|
||||||
; The file to write
|
; The file to write
|
||||||
OutFile "GPXSee-${VERSION}.exe"
|
OutFile "GPXSee-${VERSION}.exe"
|
||||||
|
@ -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.14"
|
!define VERSION "4.15"
|
||||||
|
|
||||||
; The file to write
|
; The file to write
|
||||||
OutFile "GPXSee-${VERSION}_x64.exe"
|
OutFile "GPXSee-${VERSION}_x64.exe"
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "cadencegraphitem.h"
|
||||||
#include "cadencegraph.h"
|
#include "cadencegraph.h"
|
||||||
|
|
||||||
|
|
||||||
CadenceGraph::CadenceGraph(QWidget *parent) : GraphTab(parent)
|
CadenceGraph::CadenceGraph(QWidget *parent) : GraphTab(parent)
|
||||||
{
|
{
|
||||||
_units = Metric;
|
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
GraphView::setYUnits(tr("1/min"));
|
GraphView::setYUnits(tr("1/min"));
|
||||||
@ -28,21 +28,16 @@ void CadenceGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < data.tracks().count(); i++) {
|
for (int i = 0; i < data.tracks().count(); i++) {
|
||||||
const Graph &graph = data.tracks().at(i)->cadence();
|
const Graph &graph = data.tracks().at(i)->cadence();
|
||||||
qreal sum = 0, w = 0;
|
|
||||||
|
|
||||||
if (graph.size() < 2) {
|
if (graph.size() < 2) {
|
||||||
skipColor();
|
skipColor();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 1; j < graph.size(); j++) {
|
CadenceGraphItem *gi = new CadenceGraphItem(graph, _graphType);
|
||||||
qreal ds = graph.at(j).s() - graph.at(j-1).s();
|
GraphView::addGraph(gi, paths.at(i));
|
||||||
sum += graph.at(j).y() * ds;
|
|
||||||
w += ds;
|
|
||||||
}
|
|
||||||
_avg.append(QPointF(data.tracks().at(i)->distance(), sum/w));
|
|
||||||
|
|
||||||
GraphView::loadGraph(graph, paths.at(i));
|
_avg.append(QPointF(data.tracks().at(i)->distance(), gi->avg()));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < data.routes().count(); i++)
|
for (int i = 0; i < data.routes().count(); i++)
|
||||||
|
@ -23,7 +23,6 @@ private:
|
|||||||
|
|
||||||
QList<QPointF> _avg;
|
QList<QPointF> _avg;
|
||||||
|
|
||||||
enum Units _units;
|
|
||||||
bool _showTracks;
|
bool _showTracks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
26
src/cadencegraphitem.cpp
Normal file
26
src/cadencegraphitem.cpp
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include "tooltip.h"
|
||||||
|
#include "cadencegraphitem.h"
|
||||||
|
|
||||||
|
CadenceGraphItem::CadenceGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
|
{
|
||||||
|
qreal sum = 0;
|
||||||
|
|
||||||
|
for (int j = 1; j < graph.size(); j++)
|
||||||
|
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
|
||||||
|
_avg = sum/graph.last().s();
|
||||||
|
|
||||||
|
setToolTip(toolTip());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CadenceGraphItem::toolTip() const
|
||||||
|
{
|
||||||
|
ToolTip tt;
|
||||||
|
|
||||||
|
tt.insert(tr("Maximum"), QString::number(max(), 'f', 1)
|
||||||
|
+ UNIT_SPACE + tr("1/min"));
|
||||||
|
tt.insert(tr("Average"), QString::number(avg(), 'f', 1)
|
||||||
|
+ UNIT_SPACE + tr("1/min"));
|
||||||
|
|
||||||
|
return tt.toString();
|
||||||
|
}
|
23
src/cadencegraphitem.h
Normal file
23
src/cadencegraphitem.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef CADENCEGRAPHITEM_H
|
||||||
|
#define CADENCEGRAPHITEM_H
|
||||||
|
|
||||||
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
class CadenceGraphItem : public GraphItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
CadenceGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
|
qreal max() const {return -bounds().top();}
|
||||||
|
qreal avg() const {return _avg;}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString toolTip() const;
|
||||||
|
|
||||||
|
qreal _avg;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // CADENCEGRAPHITEM_H
|
@ -1,6 +1,8 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "tooltip.h"
|
||||||
|
#include "elevationgraphitem.h"
|
||||||
#include "elevationgraph.h"
|
#include "elevationgraph.h"
|
||||||
|
|
||||||
|
|
||||||
@ -42,11 +44,8 @@ ElevationGraph::ElevationGraph(QWidget *parent) : GraphTab(parent)
|
|||||||
_showRoutes = true;
|
_showRoutes = true;
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
_units = Metric;
|
setYUnits(Metric);
|
||||||
|
|
||||||
setYUnits();
|
|
||||||
setYLabel(tr("Elevation"));
|
setYLabel(tr("Elevation"));
|
||||||
|
|
||||||
setMinYRange(50.0);
|
setMinYRange(50.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,43 +67,25 @@ void ElevationGraph::setInfo()
|
|||||||
|
|
||||||
void ElevationGraph::loadGraph(const Graph &graph, Type type, PathItem *path)
|
void ElevationGraph::loadGraph(const Graph &graph, Type type, PathItem *path)
|
||||||
{
|
{
|
||||||
qreal ascent = 0, descent = 0;
|
|
||||||
qreal min, max;
|
|
||||||
|
|
||||||
if (graph.size() < 2) {
|
if (graph.size() < 2) {
|
||||||
skipColor();
|
skipColor();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
max = min = graph.at(0).y();
|
ElevationGraphItem *gi = new ElevationGraphItem(graph, _graphType);
|
||||||
for (int j = 1; j < graph.size(); j++) {
|
GraphView::addGraph(gi, path, type);
|
||||||
qreal cur = graph.at(j).y();
|
|
||||||
qreal prev = graph.at(j-1).y();
|
|
||||||
|
|
||||||
if (cur > prev)
|
|
||||||
ascent += cur - prev;
|
|
||||||
if (cur < prev)
|
|
||||||
descent += prev - cur;
|
|
||||||
|
|
||||||
if (cur < min)
|
|
||||||
min = cur;
|
|
||||||
if (cur > max)
|
|
||||||
max = cur;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == Track) {
|
if (type == Track) {
|
||||||
_trackAscent += ascent;
|
_trackAscent += gi->ascent();
|
||||||
_trackDescent += descent;
|
_trackDescent += gi->descent();
|
||||||
_trackMax = nMax(_trackMax, max);
|
_trackMax = nMax(_trackMax, gi->max());
|
||||||
_trackMin = nMin(_trackMin, min);
|
_trackMin = nMin(_trackMin, gi->min());
|
||||||
} else {
|
} else {
|
||||||
_routeAscent += ascent;
|
_routeAscent += gi->ascent();
|
||||||
_routeDescent += descent;
|
_routeDescent += gi->descent();
|
||||||
_routeMax = nMax(_routeMax, max);
|
_routeMax = nMax(_routeMax, gi->max());
|
||||||
_routeMin = nMin(_routeMin, min);
|
_routeMin = nMin(_routeMin, gi->min());
|
||||||
}
|
}
|
||||||
|
|
||||||
GraphView::loadGraph(graph, path, type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ElevationGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
void ElevationGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
||||||
@ -135,9 +116,9 @@ void ElevationGraph::clear()
|
|||||||
GraphView::clear();
|
GraphView::clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ElevationGraph::setYUnits()
|
void ElevationGraph::setYUnits(Units units)
|
||||||
{
|
{
|
||||||
if (_units == Metric) {
|
if (units == Metric) {
|
||||||
GraphView::setYUnits(tr("m"));
|
GraphView::setYUnits(tr("m"));
|
||||||
setYScale(1);
|
setYScale(1);
|
||||||
} else {
|
} else {
|
||||||
@ -146,15 +127,12 @@ void ElevationGraph::setYUnits()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ElevationGraph::setUnits(enum Units units)
|
void ElevationGraph::setUnits(Units units)
|
||||||
{
|
{
|
||||||
_units = units;
|
setYUnits(units);
|
||||||
|
|
||||||
setYUnits();
|
|
||||||
setInfo();
|
setInfo();
|
||||||
GraphView::setUnits(units);
|
|
||||||
|
|
||||||
redraw();
|
GraphView::setUnits(units);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ElevationGraph::showTracks(bool show)
|
void ElevationGraph::showTracks(bool show)
|
||||||
|
@ -25,7 +25,7 @@ private:
|
|||||||
qreal ascent() const;
|
qreal ascent() const;
|
||||||
qreal descent() const;
|
qreal descent() const;
|
||||||
|
|
||||||
void setYUnits();
|
void setYUnits(Units units);
|
||||||
void setInfo();
|
void setInfo();
|
||||||
|
|
||||||
void loadGraph(const Graph &graph, Type type, PathItem *path);
|
void loadGraph(const Graph &graph, Type type, PathItem *path);
|
||||||
@ -35,7 +35,6 @@ private:
|
|||||||
qreal _trackMax, _routeMax;
|
qreal _trackMax, _routeMax;
|
||||||
qreal _trackMin, _routeMin;
|
qreal _trackMin, _routeMin;
|
||||||
|
|
||||||
enum Units _units;
|
|
||||||
bool _showTracks, _showRoutes;
|
bool _showTracks, _showRoutes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
43
src/elevationgraphitem.cpp
Normal file
43
src/elevationgraphitem.cpp
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#include "tooltip.h"
|
||||||
|
#include "elevationgraphitem.h"
|
||||||
|
|
||||||
|
ElevationGraphItem::ElevationGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
|
{
|
||||||
|
_ascent = _descent = 0;
|
||||||
|
|
||||||
|
for (int j = 1; j < graph.size(); j++) {
|
||||||
|
qreal cur = graph.at(j).y();
|
||||||
|
qreal prev = graph.at(j-1).y();
|
||||||
|
|
||||||
|
if (cur > prev)
|
||||||
|
_ascent += cur - prev;
|
||||||
|
if (cur < prev)
|
||||||
|
_descent += prev - cur;
|
||||||
|
}
|
||||||
|
|
||||||
|
setToolTip(toolTip(Metric));
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ElevationGraphItem::toolTip(Units units) const
|
||||||
|
{
|
||||||
|
ToolTip tt;
|
||||||
|
qreal scale = (units == Metric) ? 1.0 : M2FT;
|
||||||
|
QString su = (units == Metric) ? tr("m") : tr("ft");
|
||||||
|
|
||||||
|
tt.insert(tr("Ascent"), QString::number(ascent() * scale, 'f', 0)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
tt.insert(tr("Descent"), QString::number(descent() * scale, 'f', 0)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
tt.insert(tr("Maximum"), QString::number(max() * scale, 'f', 0)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
tt.insert(tr("Minimum"), QString::number(min() * scale, 'f', 0)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
|
||||||
|
return tt.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ElevationGraphItem::setUnits(Units units)
|
||||||
|
{
|
||||||
|
setToolTip(toolTip(units));
|
||||||
|
}
|
27
src/elevationgraphitem.h
Normal file
27
src/elevationgraphitem.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef ELEVATIONGRAPHITEM_H
|
||||||
|
#define ELEVATIONGRAPHITEM_H
|
||||||
|
|
||||||
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
class ElevationGraphItem : public GraphItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
ElevationGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
|
qreal ascent() const {return _ascent;}
|
||||||
|
qreal descent() const {return _descent;}
|
||||||
|
qreal min() const {return -bounds().bottom();}
|
||||||
|
qreal max() const {return -bounds().top();}
|
||||||
|
|
||||||
|
void setUnits(Units units);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString toolTip(Units units) const;
|
||||||
|
|
||||||
|
qreal _ascent, _descent;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // ELEVATIONGRAPHITEM_H
|
@ -2,7 +2,7 @@
|
|||||||
#include "coordinates.h"
|
#include "coordinates.h"
|
||||||
#include "format.h"
|
#include "format.h"
|
||||||
|
|
||||||
QString Format::timeSpan(qreal time)
|
QString Format::timeSpan(qreal time, bool full)
|
||||||
{
|
{
|
||||||
unsigned h, m, s;
|
unsigned h, m, s;
|
||||||
|
|
||||||
@ -10,8 +10,12 @@ QString Format::timeSpan(qreal time)
|
|||||||
m = (time - (h * 3600)) / 60;
|
m = (time - (h * 3600)) / 60;
|
||||||
s = time - (h * 3600) - (m * 60);
|
s = time - (h * 3600) - (m * 60);
|
||||||
|
|
||||||
return QString("%1:%2:%3").arg(h).arg(m, 2, 10, QChar('0'))
|
if (full || h)
|
||||||
.arg(s, 2, 10, QChar('0'));
|
return QString("%1:%2:%3").arg(h, 2, 10, QChar('0'))
|
||||||
|
.arg(m, 2, 10, QChar('0')).arg(s, 2, 10, QChar('0'));
|
||||||
|
else
|
||||||
|
return QString("%1:%2").arg(m, 2, 10, QChar('0'))
|
||||||
|
.arg(s, 2, 10, QChar('0'));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Format::distance(qreal value, Units units)
|
QString Format::distance(qreal value, Units units)
|
||||||
|
@ -8,7 +8,7 @@ class Coordinates;
|
|||||||
|
|
||||||
namespace Format
|
namespace Format
|
||||||
{
|
{
|
||||||
QString timeSpan(qreal time);
|
QString timeSpan(qreal time, bool full = true);
|
||||||
QString distance(qreal value, Units units);
|
QString distance(qreal value, Units units);
|
||||||
QString elevation(qreal value, Units units);
|
QString elevation(qreal value, Units units);
|
||||||
QString coordinates(const Coordinates &value);
|
QString coordinates(const Coordinates &value);
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#include "graphitem.h"
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
|
||||||
GraphItem::GraphItem(const Graph &graph, QGraphicsItem *parent)
|
GraphItem::GraphItem(const Graph &graph, GraphType type, QGraphicsItem *parent)
|
||||||
: QGraphicsObject(parent)
|
: QGraphicsObject(parent)
|
||||||
{
|
{
|
||||||
_id = 0;
|
_id = 0;
|
||||||
@ -10,7 +10,7 @@ GraphItem::GraphItem(const Graph &graph, QGraphicsItem *parent)
|
|||||||
|
|
||||||
_pen = QPen(Qt::black, _width);
|
_pen = QPen(Qt::black, _width);
|
||||||
|
|
||||||
_type = Distance;
|
_type = type;
|
||||||
_graph = graph;
|
_graph = graph;
|
||||||
_sx = 1.0; _sy = 1.0;
|
_sx = 1.0; _sy = 1.0;
|
||||||
|
|
||||||
@ -25,7 +25,17 @@ GraphItem::GraphItem(const Graph &graph, QGraphicsItem *parent)
|
|||||||
setZValue(1.0);
|
setZValue(1.0);
|
||||||
|
|
||||||
updatePath();
|
updatePath();
|
||||||
|
updateShape();
|
||||||
updateBounds();
|
updateBounds();
|
||||||
|
|
||||||
|
setAcceptHoverEvents(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphItem::updateShape()
|
||||||
|
{
|
||||||
|
QPainterPathStroker s;
|
||||||
|
s.setWidth(_width + 1);
|
||||||
|
_shape = s.createStroke(_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
void GraphItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
@ -46,25 +56,37 @@ void GraphItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|||||||
|
|
||||||
void GraphItem::setGraphType(GraphType type)
|
void GraphItem::setGraphType(GraphType type)
|
||||||
{
|
{
|
||||||
|
if (type == _type)
|
||||||
|
return;
|
||||||
|
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
|
|
||||||
_type = type;
|
_type = type;
|
||||||
updatePath();
|
updatePath();
|
||||||
|
updateShape();
|
||||||
updateBounds();
|
updateBounds();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphItem::setColor(const QColor &color)
|
void GraphItem::setColor(const QColor &color)
|
||||||
{
|
{
|
||||||
|
if (_pen.color() == color)
|
||||||
|
return;
|
||||||
|
|
||||||
_pen.setColor(color);
|
_pen.setColor(color);
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphItem::setWidth(int width)
|
void GraphItem::setWidth(int width)
|
||||||
{
|
{
|
||||||
|
if (width == _width)
|
||||||
|
return;
|
||||||
|
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
|
|
||||||
_width = width;
|
_width = width;
|
||||||
_pen.setWidth(width);
|
_pen.setWidth(width);
|
||||||
|
|
||||||
|
updateShape();
|
||||||
}
|
}
|
||||||
|
|
||||||
qreal GraphItem::yAtX(qreal x)
|
qreal GraphItem::yAtX(qreal x)
|
||||||
@ -143,9 +165,9 @@ void GraphItem::emitSliderPositionChanged(qreal pos)
|
|||||||
emit sliderPositionChanged(pos);
|
emit sliderPositionChanged(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphItem::selected(bool selected)
|
void GraphItem::hover(bool hover)
|
||||||
{
|
{
|
||||||
if (selected) {
|
if (hover) {
|
||||||
_pen.setWidth(_width + 1);
|
_pen.setWidth(_width + 1);
|
||||||
setZValue(zValue() + 1.0);
|
setZValue(zValue() + 1.0);
|
||||||
} else {
|
} else {
|
||||||
@ -165,6 +187,7 @@ void GraphItem::setScale(qreal sx, qreal sy)
|
|||||||
|
|
||||||
_sx = sx; _sy = sy;
|
_sx = sx; _sy = sy;
|
||||||
updatePath();
|
updatePath();
|
||||||
|
updateShape();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphItem::updatePath()
|
void GraphItem::updatePath()
|
||||||
@ -199,3 +222,25 @@ void GraphItem::updateBounds()
|
|||||||
|
|
||||||
_bounds = QRectF(QPointF(left, top), QPointF(right, bottom));
|
_bounds = QRectF(QPointF(left, top), QPointF(right, bottom));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GraphItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event);
|
||||||
|
|
||||||
|
_pen.setWidthF(_width + 1);
|
||||||
|
setZValue(zValue() + 1.0);
|
||||||
|
update();
|
||||||
|
|
||||||
|
emit selected(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GraphItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
|
||||||
|
{
|
||||||
|
Q_UNUSED(event);
|
||||||
|
|
||||||
|
_pen.setWidthF(_width);
|
||||||
|
setZValue(zValue() - 1.0);
|
||||||
|
update();
|
||||||
|
|
||||||
|
emit selected(false);
|
||||||
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <QGraphicsObject>
|
#include <QGraphicsObject>
|
||||||
#include <QPen>
|
#include <QPen>
|
||||||
|
#include "units.h"
|
||||||
#include "graph.h"
|
#include "graph.h"
|
||||||
|
|
||||||
class GraphItem : public QGraphicsObject
|
class GraphItem : public QGraphicsObject
|
||||||
@ -10,34 +11,42 @@ class GraphItem : public QGraphicsObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GraphItem(const Graph &graph, QGraphicsItem *parent = 0);
|
GraphItem(const Graph &graph, GraphType type, QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
QRectF boundingRect() const
|
QPainterPath shape() const {return _shape;}
|
||||||
{return _path.boundingRect();}
|
QRectF boundingRect() const {return _shape.boundingRect();}
|
||||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
QWidget *widget);
|
QWidget *widget);
|
||||||
|
|
||||||
const QRectF &bounds() const {return _bounds;}
|
const QRectF &bounds() const {return _bounds;}
|
||||||
void setScale(qreal sx, qreal sy);
|
|
||||||
|
|
||||||
|
void setScale(qreal sx, qreal sy);
|
||||||
void setGraphType(GraphType type);
|
void setGraphType(GraphType type);
|
||||||
int id() const {return _id;}
|
int id() const {return _id;}
|
||||||
void setId(int id) {_id = id;}
|
void setId(int id) {_id = id;}
|
||||||
void setColor(const QColor &color);
|
void setColor(const QColor &color);
|
||||||
void setWidth(int width);
|
void setWidth(int width);
|
||||||
|
virtual void setUnits(Units units) {Q_UNUSED(units);}
|
||||||
|
|
||||||
qreal yAtX(qreal x);
|
qreal yAtX(qreal x);
|
||||||
qreal distanceAtTime(qreal time);
|
qreal distanceAtTime(qreal time);
|
||||||
|
|
||||||
|
void redraw();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sliderPositionChanged(qreal);
|
void sliderPositionChanged(qreal);
|
||||||
|
void selected(bool);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void emitSliderPositionChanged(qreal);
|
void emitSliderPositionChanged(qreal);
|
||||||
void selected(bool selected);
|
void hover(bool hover);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
|
||||||
|
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
|
||||||
|
|
||||||
void updatePath();
|
void updatePath();
|
||||||
|
void updateShape();
|
||||||
void updateBounds();
|
void updateBounds();
|
||||||
|
|
||||||
int _id;
|
int _id;
|
||||||
@ -48,6 +57,7 @@ private:
|
|||||||
GraphType _type;
|
GraphType _type;
|
||||||
|
|
||||||
QPainterPath _path;
|
QPainterPath _path;
|
||||||
|
QPainterPath _shape;
|
||||||
QRectF _bounds;
|
QRectF _bounds;
|
||||||
qreal _sx, _sy;
|
qreal _sx, _sy;
|
||||||
|
|
||||||
|
@ -19,8 +19,9 @@ public:
|
|||||||
|
|
||||||
virtual QString label() const = 0;
|
virtual QString label() const = 0;
|
||||||
virtual void loadData(const Data &data, const QList<PathItem *> &paths) = 0;
|
virtual void loadData(const Data &data, const QList<PathItem *> &paths) = 0;
|
||||||
virtual void clear() {}
|
virtual void clear() {GraphView::clear();}
|
||||||
virtual void setUnits(enum Units units) {GraphView::setUnits(units);}
|
virtual void setUnits(enum Units units) {GraphView::setUnits(units);}
|
||||||
|
virtual void setGraphType(GraphType type) {GraphView::setGraphType(type);}
|
||||||
virtual void setTimeType(enum TimeType type) {Q_UNUSED(type)}
|
virtual void setTimeType(enum TimeType type) {Q_UNUSED(type)}
|
||||||
virtual void showTracks(bool show) {Q_UNUSED(show)}
|
virtual void showTracks(bool show) {Q_UNUSED(show)}
|
||||||
virtual void showRoutes(bool show) {Q_UNUSED(show)}
|
virtual void showRoutes(bool show) {Q_UNUSED(show)}
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include "graph.h"
|
#include "graph.h"
|
||||||
#include "graphitem.h"
|
#include "graphitem.h"
|
||||||
#include "pathitem.h"
|
#include "pathitem.h"
|
||||||
|
#include "format.h"
|
||||||
#include "graphview.h"
|
#include "graphview.h"
|
||||||
|
|
||||||
|
|
||||||
@ -139,7 +140,13 @@ void GraphView::setXUnits()
|
|||||||
void GraphView::setUnits(Units units)
|
void GraphView::setUnits(Units units)
|
||||||
{
|
{
|
||||||
_units = units;
|
_units = units;
|
||||||
|
|
||||||
|
for (int i = 0; i < _graphs.count(); i++)
|
||||||
|
_graphs.at(i)->setUnits(units);
|
||||||
|
|
||||||
setXUnits();
|
setXUnits();
|
||||||
|
|
||||||
|
redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphView::setGraphType(GraphType type)
|
void GraphView::setGraphType(GraphType type)
|
||||||
@ -167,29 +174,31 @@ void GraphView::showGrid(bool show)
|
|||||||
_grid->setVisible(show);
|
_grid->setVisible(show);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphView::loadGraph(const Graph &graph, PathItem *path, int id)
|
void GraphView::showSliderInfo(bool show)
|
||||||
{
|
{
|
||||||
if (graph.size() < 2)
|
_sliderInfo->setVisible(show);
|
||||||
return;
|
}
|
||||||
|
|
||||||
GraphItem *gi = new GraphItem(graph);
|
void GraphView::addGraph(GraphItem *graph, PathItem *path, int id)
|
||||||
gi->setGraphType(_graphType);
|
{
|
||||||
gi->setId(id);
|
graph->setUnits(_units);
|
||||||
gi->setColor(_palette.nextColor());
|
graph->setId(id);
|
||||||
gi->setWidth(_width);
|
graph->setColor(_palette.nextColor());
|
||||||
|
graph->setWidth(_width);
|
||||||
|
|
||||||
connect(this, SIGNAL(sliderPositionChanged(qreal)), gi,
|
connect(this, SIGNAL(sliderPositionChanged(qreal)), graph,
|
||||||
SLOT(emitSliderPositionChanged(qreal)));
|
SLOT(emitSliderPositionChanged(qreal)));
|
||||||
connect(gi, SIGNAL(sliderPositionChanged(qreal)), path,
|
connect(graph, SIGNAL(sliderPositionChanged(qreal)), path,
|
||||||
SLOT(moveMarker(qreal)));
|
SLOT(moveMarker(qreal)));
|
||||||
connect(path, SIGNAL(selected(bool)), gi, SLOT(selected(bool)));
|
connect(path, SIGNAL(selected(bool)), graph, SLOT(hover(bool)));
|
||||||
|
connect(graph, SIGNAL(selected(bool)), path, SLOT(hover(bool)));
|
||||||
|
|
||||||
_graphs.append(gi);
|
_graphs.append(graph);
|
||||||
|
|
||||||
if (!_hide.contains(id)) {
|
if (!_hide.contains(id)) {
|
||||||
_visible.append(gi);
|
_visible.append(graph);
|
||||||
_scene->addItem(gi);
|
_scene->addItem(graph);
|
||||||
_bounds |= gi->bounds();
|
_bounds |= graph->bounds();
|
||||||
setXUnits();
|
setXUnits();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -227,11 +236,6 @@ void GraphView::showGraph(bool show, int id)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphView::redraw()
|
|
||||||
{
|
|
||||||
redraw(viewport()->size() - QSizeF(MARGIN, MARGIN));
|
|
||||||
}
|
|
||||||
|
|
||||||
QRectF GraphView::bounds() const
|
QRectF GraphView::bounds() const
|
||||||
{
|
{
|
||||||
QRectF br(_bounds);
|
QRectF br(_bounds);
|
||||||
@ -239,6 +243,11 @@ QRectF GraphView::bounds() const
|
|||||||
return br;
|
return br;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GraphView::redraw()
|
||||||
|
{
|
||||||
|
redraw(viewport()->size() - QSizeF(MARGIN, MARGIN));
|
||||||
|
}
|
||||||
|
|
||||||
void GraphView::redraw(const QSizeF &size)
|
void GraphView::redraw(const QSizeF &size)
|
||||||
{
|
{
|
||||||
QRectF r;
|
QRectF r;
|
||||||
@ -372,22 +381,26 @@ void GraphView::updateSliderPosition()
|
|||||||
_slider->setVisible(false);
|
_slider->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateSliderInfo();
|
if (_slider->isVisible())
|
||||||
|
updateSliderInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphView::updateSliderInfo()
|
void GraphView::updateSliderInfo()
|
||||||
{
|
{
|
||||||
_sliderInfo->setVisible(_visible.count() == 1);
|
qreal r, y;
|
||||||
if (!_sliderInfo->isVisible())
|
|
||||||
return;
|
|
||||||
|
|
||||||
QRectF br(_visible.first()->bounds());
|
if (_visible.count() > 1) {
|
||||||
if (br.height() < _minYRange)
|
r = 0;
|
||||||
br.adjust(0, -(_minYRange/2 - br.height()/2), 0,
|
y = 0;
|
||||||
_minYRange/2 - br.height()/2);
|
} else {
|
||||||
|
QRectF br(_visible.first()->bounds());
|
||||||
|
if (br.height() < _minYRange)
|
||||||
|
br.adjust(0, -(_minYRange/2 - br.height()/2), 0,
|
||||||
|
_minYRange/2 - br.height()/2);
|
||||||
|
|
||||||
qreal y = _visible.first()->yAtX(_sliderPos);
|
y = _visible.first()->yAtX(_sliderPos);
|
||||||
qreal r = (y - br.bottom()) / br.height();
|
r = (y - br.bottom()) / br.height();
|
||||||
|
}
|
||||||
|
|
||||||
qreal pos = (_sliderPos / bounds().width()) * _slider->area().width();
|
qreal pos = (_sliderPos / bounds().width()) * _slider->area().width();
|
||||||
SliderInfoItem::Side s = (pos + _sliderInfo->boundingRect().width()
|
SliderInfoItem::Side s = (pos + _sliderInfo->boundingRect().width()
|
||||||
@ -395,8 +408,11 @@ void GraphView::updateSliderInfo()
|
|||||||
|
|
||||||
_sliderInfo->setSide(s);
|
_sliderInfo->setSide(s);
|
||||||
_sliderInfo->setPos(QPointF(0, _slider->boundingRect().height() * r));
|
_sliderInfo->setPos(QPointF(0, _slider->boundingRect().height() * r));
|
||||||
_sliderInfo->setText(QString::number(-y * _yScale + _yOffset, 'f',
|
_sliderInfo->setText(_graphType == Time ? Format::timeSpan(_sliderPos,
|
||||||
_precision));
|
bounds().width() > 3600) : QString::number(_sliderPos * _xScale, 'f', 1)
|
||||||
|
+ UNIT_SPACE + _xUnits, (_visible.count() > 1) ? QString()
|
||||||
|
: QString::number(-y * _yScale + _yOffset, 'f', _precision) + UNIT_SPACE
|
||||||
|
+ _yUnits);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphView::emitSliderPositionChanged(const QPointF &pos)
|
void GraphView::emitSliderPositionChanged(const QPointF &pos)
|
||||||
@ -452,6 +468,8 @@ void GraphView::setGraphWidth(int width)
|
|||||||
|
|
||||||
for (int i = 0; i < _graphs.count(); i++)
|
for (int i = 0; i < _graphs.count(); i++)
|
||||||
_graphs.at(i)->setWidth(width);
|
_graphs.at(i)->setWidth(width);
|
||||||
|
|
||||||
|
redraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphView::useOpenGL(bool use)
|
void GraphView::useOpenGL(bool use)
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
#include <QGraphicsView>
|
#include <QGraphicsView>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QSet>
|
#include <QSet>
|
||||||
|
#include "graph.h"
|
||||||
#include "palette.h"
|
#include "palette.h"
|
||||||
#include "units.h"
|
#include "units.h"
|
||||||
#include "graph.h"
|
|
||||||
|
|
||||||
|
|
||||||
class AxisItem;
|
class AxisItem;
|
||||||
@ -25,18 +25,29 @@ public:
|
|||||||
GraphView(QWidget *parent = 0);
|
GraphView(QWidget *parent = 0);
|
||||||
~GraphView();
|
~GraphView();
|
||||||
|
|
||||||
void loadGraph(const Graph &graph, PathItem *path, int id = 0);
|
bool isEmpty() const {return _graphs.isEmpty();}
|
||||||
int count() const {return _graphs.count();}
|
|
||||||
void redraw();
|
|
||||||
void clear();
|
void clear();
|
||||||
|
|
||||||
|
void plot(QPainter *painter, const QRectF &target, qreal scale);
|
||||||
|
|
||||||
|
void setPalette(const Palette &palette);
|
||||||
|
void setGraphWidth(int width);
|
||||||
|
void showGrid(bool show);
|
||||||
|
void showSliderInfo(bool show);
|
||||||
|
void useOpenGL(bool use);
|
||||||
|
void useAntiAliasing(bool use);
|
||||||
|
|
||||||
|
void setSliderPosition(qreal pos);
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void sliderPositionChanged(qreal);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void addGraph(GraphItem *graph, PathItem *path, int id = 0);
|
||||||
|
|
||||||
void showGraph(bool show, int id = 0);
|
void showGraph(bool show, int id = 0);
|
||||||
void setGraphType(GraphType type);
|
void setGraphType(GraphType type);
|
||||||
void setUnits(Units units);
|
void setUnits(Units units);
|
||||||
void showGrid(bool show);
|
|
||||||
|
|
||||||
void setPalette(const Palette &palette);
|
|
||||||
void setGraphWidth(int width);
|
|
||||||
|
|
||||||
const QString &yLabel() const {return _yLabel;}
|
const QString &yLabel() const {return _yLabel;}
|
||||||
const QString &yUnits() const {return _yUnits;}
|
const QString &yUnits() const {return _yUnits;}
|
||||||
@ -50,24 +61,16 @@ public:
|
|||||||
void setSliderPrecision(int precision) {_precision = precision;}
|
void setSliderPrecision(int precision) {_precision = precision;}
|
||||||
void setMinYRange(qreal range) {_minYRange = range;}
|
void setMinYRange(qreal range) {_minYRange = range;}
|
||||||
|
|
||||||
qreal sliderPosition() const {return _sliderPos;}
|
|
||||||
void setSliderPosition(qreal pos);
|
|
||||||
|
|
||||||
void plot(QPainter *painter, const QRectF &target, qreal scale);
|
|
||||||
|
|
||||||
void useOpenGL(bool use);
|
|
||||||
void useAntiAliasing(bool use);
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void sliderPositionChanged(qreal);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
QRectF bounds() const;
|
QRectF bounds() const;
|
||||||
|
void redraw();
|
||||||
void redraw(const QSizeF &size);
|
void redraw(const QSizeF &size);
|
||||||
void addInfo(const QString &key, const QString &value);
|
void addInfo(const QString &key, const QString &value);
|
||||||
void clearInfo();
|
void clearInfo();
|
||||||
void skipColor() {_palette.nextColor();}
|
void skipColor() {_palette.nextColor();}
|
||||||
|
|
||||||
|
QList<GraphItem*> _graphs;
|
||||||
|
GraphType _graphType;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void emitSliderPositionChanged(const QPointF &pos);
|
void emitSliderPositionChanged(const QPointF &pos);
|
||||||
void newSliderPosition(const QPointF &pos);
|
void newSliderPosition(const QPointF &pos);
|
||||||
@ -84,6 +87,7 @@ private:
|
|||||||
void resizeEvent(QResizeEvent *);
|
void resizeEvent(QResizeEvent *);
|
||||||
void mousePressEvent(QMouseEvent *);
|
void mousePressEvent(QMouseEvent *);
|
||||||
|
|
||||||
|
Units _units;
|
||||||
qreal _xScale, _yScale;
|
qreal _xScale, _yScale;
|
||||||
qreal _yOffset;
|
qreal _yOffset;
|
||||||
QString _xUnits, _yUnits;
|
QString _xUnits, _yUnits;
|
||||||
@ -100,15 +104,11 @@ private:
|
|||||||
InfoItem *_info;
|
InfoItem *_info;
|
||||||
GridItem *_grid;
|
GridItem *_grid;
|
||||||
|
|
||||||
QList<GraphItem*> _graphs;
|
|
||||||
QList<GraphItem*> _visible;
|
QList<GraphItem*> _visible;
|
||||||
QSet<int> _hide;
|
QSet<int> _hide;
|
||||||
QRectF _bounds;
|
QRectF _bounds;
|
||||||
Palette _palette;
|
Palette _palette;
|
||||||
int _width;
|
int _width;
|
||||||
|
|
||||||
Units _units;
|
|
||||||
GraphType _graphType;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GRAPHVIEW_H
|
#endif // GRAPHVIEW_H
|
||||||
|
58
src/gui.cpp
58
src/gui.cpp
@ -361,7 +361,7 @@ void GUI::createActions()
|
|||||||
tr("Load map..."), this);
|
tr("Load map..."), this);
|
||||||
connect(_loadMapAction, SIGNAL(triggered()), this, SLOT(loadMap()));
|
connect(_loadMapAction, SIGNAL(triggered()), this, SLOT(loadMap()));
|
||||||
_clearMapCacheAction = new QAction(tr("Clear tile cache"), this);
|
_clearMapCacheAction = new QAction(tr("Clear tile cache"), this);
|
||||||
connect(_clearMapCacheAction, SIGNAL(triggered()), this,
|
connect(_clearMapCacheAction, SIGNAL(triggered()), _pathView,
|
||||||
SLOT(clearMapCache()));
|
SLOT(clearMapCache()));
|
||||||
createMapActions();
|
createMapActions();
|
||||||
_nextMapAction = new QAction(tr("Next map"), this);
|
_nextMapAction = new QAction(tr("Next map"), this);
|
||||||
@ -412,14 +412,12 @@ void GUI::createActions()
|
|||||||
_distanceGraphAction = new QAction(tr("Distance"), this);
|
_distanceGraphAction = new QAction(tr("Distance"), this);
|
||||||
_distanceGraphAction->setCheckable(true);
|
_distanceGraphAction->setCheckable(true);
|
||||||
_distanceGraphAction->setActionGroup(ag);
|
_distanceGraphAction->setActionGroup(ag);
|
||||||
_distanceGraphAction->setShortcut(DISTANCE_GRAPH_SHORTCUT);
|
|
||||||
connect(_distanceGraphAction, SIGNAL(triggered()), this,
|
connect(_distanceGraphAction, SIGNAL(triggered()), this,
|
||||||
SLOT(setDistanceGraph()));
|
SLOT(setDistanceGraph()));
|
||||||
addAction(_distanceGraphAction);
|
addAction(_distanceGraphAction);
|
||||||
_timeGraphAction = new QAction(tr("Time"), this);
|
_timeGraphAction = new QAction(tr("Time"), this);
|
||||||
_timeGraphAction->setCheckable(true);
|
_timeGraphAction->setCheckable(true);
|
||||||
_timeGraphAction->setActionGroup(ag);
|
_timeGraphAction->setActionGroup(ag);
|
||||||
_timeGraphAction->setShortcut(TIME_GRAPH_SHORTCUT);
|
|
||||||
connect(_timeGraphAction, SIGNAL(triggered()), this,
|
connect(_timeGraphAction, SIGNAL(triggered()), this,
|
||||||
SLOT(setTimeGraph()));
|
SLOT(setTimeGraph()));
|
||||||
addAction(_timeGraphAction);
|
addAction(_timeGraphAction);
|
||||||
@ -427,6 +425,10 @@ void GUI::createActions()
|
|||||||
_showGraphGridAction->setCheckable(true);
|
_showGraphGridAction->setCheckable(true);
|
||||||
connect(_showGraphGridAction, SIGNAL(triggered(bool)), this,
|
connect(_showGraphGridAction, SIGNAL(triggered(bool)), this,
|
||||||
SLOT(showGraphGrids(bool)));
|
SLOT(showGraphGrids(bool)));
|
||||||
|
_showGraphSliderInfoAction = new QAction(tr("Show slider info"), this);
|
||||||
|
_showGraphSliderInfoAction->setCheckable(true);
|
||||||
|
connect(_showGraphSliderInfoAction, SIGNAL(triggered(bool)), this,
|
||||||
|
SLOT(showGraphSliderInfo(bool)));
|
||||||
|
|
||||||
// Settings actions
|
// Settings actions
|
||||||
_showToolbarsAction = new QAction(tr("Show toolbars"), this);
|
_showToolbarsAction = new QAction(tr("Show toolbars"), this);
|
||||||
@ -515,6 +517,7 @@ void GUI::createMenus()
|
|||||||
graphMenu->addAction(_timeGraphAction);
|
graphMenu->addAction(_timeGraphAction);
|
||||||
graphMenu->addSeparator();
|
graphMenu->addSeparator();
|
||||||
graphMenu->addAction(_showGraphGridAction);
|
graphMenu->addAction(_showGraphGridAction);
|
||||||
|
graphMenu->addAction(_showGraphSliderInfoAction);
|
||||||
graphMenu->addSeparator();
|
graphMenu->addSeparator();
|
||||||
graphMenu->addAction(_showGraphsAction);
|
graphMenu->addAction(_showGraphsAction);
|
||||||
|
|
||||||
@ -671,7 +674,12 @@ void GUI::keys()
|
|||||||
+ tr("Last file") + "</td><td><i>" + QKeySequence(LAST_KEY).toString()
|
+ tr("Last file") + "</td><td><i>" + QKeySequence(LAST_KEY).toString()
|
||||||
+ "</i></td></tr><tr><td>" + tr("Append file")
|
+ "</i></td></tr><tr><td>" + tr("Append file")
|
||||||
+ "</td><td><i>" + QKeySequence(MODIFIER).toString() + tr("Next/Previous")
|
+ "</td><td><i>" + QKeySequence(MODIFIER).toString() + tr("Next/Previous")
|
||||||
+ "</i></td></tr><tr><td></td><td></td></tr><tr><td>" + tr("Next map")
|
+ "</i></td></tr><tr><td></td><td></td></tr><tr><td>"
|
||||||
|
+ tr("Toggle graph type") + "</td><td><i>"
|
||||||
|
+ QKeySequence(TOGGLE_GRAPH_TYPE_KEY).toString() + "</i></td></tr><tr><td>"
|
||||||
|
+ tr("Toggle time type") + "</td><td><i>"
|
||||||
|
+ QKeySequence(TOGGLE_TIME_TYPE_KEY).toString()
|
||||||
|
+ "<tr><td></td><td></td></tr><tr><td>" + tr("Next map")
|
||||||
+ "</td><td><i>" + NEXT_MAP_SHORTCUT.toString() + "</i></td></tr><tr><td>"
|
+ "</td><td><i>" + NEXT_MAP_SHORTCUT.toString() + "</i></td></tr><tr><td>"
|
||||||
+ tr("Previous map") + "</td><td><i>" + PREV_MAP_SHORTCUT.toString()
|
+ tr("Previous map") + "</td><td><i>" + PREV_MAP_SHORTCUT.toString()
|
||||||
+ "</i></td></tr><tr><td></td><td></td></tr><tr><td>" + tr("Zoom in")
|
+ "</i></td></tr><tr><td></td><td></td></tr><tr><td>" + tr("Zoom in")
|
||||||
@ -1014,7 +1022,7 @@ void GUI::plot(QPrinter *printer)
|
|||||||
|
|
||||||
int cnt = 0;
|
int cnt = 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)->isEmpty())
|
||||||
cnt++;
|
cnt++;
|
||||||
|
|
||||||
qreal sp = ratio * 20;
|
qreal sp = ratio * 20;
|
||||||
@ -1023,7 +1031,7 @@ 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)->isEmpty()) {
|
||||||
_tabs.at(i)->plot(&p, QRectF(0, y, printer->width(), gh),
|
_tabs.at(i)->plot(&p, QRectF(0, y, printer->width(), gh),
|
||||||
ratio);
|
ratio);
|
||||||
y += gh + sp;
|
y += gh + sp;
|
||||||
@ -1174,6 +1182,12 @@ void GUI::showGraphGrids(bool show)
|
|||||||
_tabs.at(i)->showGrid(show);
|
_tabs.at(i)->showGrid(show);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GUI::showGraphSliderInfo(bool show)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < _tabs.size(); i++)
|
||||||
|
_tabs.at(i)->showSliderInfo(show);
|
||||||
|
}
|
||||||
|
|
||||||
void GUI::loadMap()
|
void GUI::loadMap()
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getOpenFileName(this, tr("Open map file"),
|
QString fileName = QFileDialog::getOpenFileName(this, tr("Open map file"),
|
||||||
@ -1203,12 +1217,6 @@ void GUI::loadMap()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUI::clearMapCache()
|
|
||||||
{
|
|
||||||
_map->clearCache();
|
|
||||||
_pathView->redraw();
|
|
||||||
}
|
|
||||||
|
|
||||||
void GUI::updateStatusBarInfo()
|
void GUI::updateStatusBarInfo()
|
||||||
{
|
{
|
||||||
if (_files.count() == 0)
|
if (_files.count() == 0)
|
||||||
@ -1320,13 +1328,13 @@ void GUI::updateGraphTabs()
|
|||||||
|
|
||||||
for (int i = 0; i < _tabs.size(); i++) {
|
for (int i = 0; i < _tabs.size(); i++) {
|
||||||
tab = _tabs.at(i);
|
tab = _tabs.at(i);
|
||||||
if (!tab->count() && (index = _graphTabWidget->indexOf(tab)) >= 0)
|
if (tab->isEmpty() && (index = _graphTabWidget->indexOf(tab)) >= 0)
|
||||||
_graphTabWidget->removeTab(index);
|
_graphTabWidget->removeTab(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < _tabs.size(); i++) {
|
for (int i = 0; i < _tabs.size(); i++) {
|
||||||
tab = _tabs.at(i);
|
tab = _tabs.at(i);
|
||||||
if (tab->count() && _graphTabWidget->indexOf(tab) < 0)
|
if (!tab->isEmpty() && _graphTabWidget->indexOf(tab) < 0)
|
||||||
_graphTabWidget->insertTab(i, tab, _tabs.at(i)->label());
|
_graphTabWidget->insertTab(i, tab, _tabs.at(i)->label());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1433,6 +1441,19 @@ void GUI::keyPressEvent(QKeyEvent *event)
|
|||||||
file = _browser->last();
|
file = _browser->last();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TOGGLE_GRAPH_TYPE_KEY:
|
||||||
|
if (_timeGraphAction->isChecked())
|
||||||
|
_distanceGraphAction->activate(QAction::Trigger);
|
||||||
|
else
|
||||||
|
_timeGraphAction->activate(QAction::Trigger);
|
||||||
|
break;
|
||||||
|
case TOGGLE_TIME_TYPE_KEY:
|
||||||
|
if (_movingTimeAction->isChecked())
|
||||||
|
_totalTimeAction->activate(QAction::Trigger);
|
||||||
|
else
|
||||||
|
_movingTimeAction->activate(QAction::Trigger);
|
||||||
|
break;
|
||||||
|
|
||||||
case Qt::Key_Escape:
|
case Qt::Key_Escape:
|
||||||
if (_fullscreenAction->isChecked()) {
|
if (_fullscreenAction->isChecked()) {
|
||||||
_fullscreenAction->setChecked(false);
|
_fullscreenAction->setChecked(false);
|
||||||
@ -1521,6 +1542,10 @@ void GUI::writeSettings()
|
|||||||
if (_showGraphGridAction->isChecked() != SHOW_GRAPH_GRIDS_DEFAULT)
|
if (_showGraphGridAction->isChecked() != SHOW_GRAPH_GRIDS_DEFAULT)
|
||||||
settings.setValue(SHOW_GRAPH_GRIDS_SETTING,
|
settings.setValue(SHOW_GRAPH_GRIDS_SETTING,
|
||||||
_showGraphGridAction->isChecked());
|
_showGraphGridAction->isChecked());
|
||||||
|
if (_showGraphSliderInfoAction->isChecked()
|
||||||
|
!= SHOW_GRAPH_SLIDER_INFO_DEFAULT)
|
||||||
|
settings.setValue(SHOW_GRAPH_SLIDER_INFO_SETTING,
|
||||||
|
_showGraphSliderInfoAction->isChecked());
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
|
||||||
settings.beginGroup(POI_SETTINGS_GROUP);
|
settings.beginGroup(POI_SETTINGS_GROUP);
|
||||||
@ -1708,6 +1733,11 @@ void GUI::readSettings()
|
|||||||
showGraphGrids(false);
|
showGraphGrids(false);
|
||||||
else
|
else
|
||||||
_showGraphGridAction->setChecked(true);
|
_showGraphGridAction->setChecked(true);
|
||||||
|
if (!settings.value(SHOW_GRAPH_SLIDER_INFO_SETTING,
|
||||||
|
SHOW_GRAPH_SLIDER_INFO_DEFAULT).toBool())
|
||||||
|
showGraphSliderInfo(false);
|
||||||
|
else
|
||||||
|
_showGraphSliderInfoAction->setChecked(true);
|
||||||
settings.endGroup();
|
settings.endGroup();
|
||||||
|
|
||||||
settings.beginGroup(POI_SETTINGS_GROUP);
|
settings.beginGroup(POI_SETTINGS_GROUP);
|
||||||
|
@ -51,12 +51,12 @@ private slots:
|
|||||||
void closePOIFiles();
|
void closePOIFiles();
|
||||||
void showGraphs(bool show);
|
void showGraphs(bool show);
|
||||||
void showGraphGrids(bool show);
|
void showGraphGrids(bool show);
|
||||||
|
void showGraphSliderInfo(bool show);
|
||||||
void showToolbars(bool show);
|
void showToolbars(bool show);
|
||||||
void showFullscreen(bool show);
|
void showFullscreen(bool show);
|
||||||
void showTracks(bool show);
|
void showTracks(bool show);
|
||||||
void showRoutes(bool show);
|
void showRoutes(bool show);
|
||||||
void loadMap();
|
void loadMap();
|
||||||
void clearMapCache();
|
|
||||||
void nextMap();
|
void nextMap();
|
||||||
void prevMap();
|
void prevMap();
|
||||||
void openOptions();
|
void openOptions();
|
||||||
@ -156,6 +156,7 @@ private:
|
|||||||
QAction *_clearMapCacheAction;
|
QAction *_clearMapCacheAction;
|
||||||
QAction *_showGraphsAction;
|
QAction *_showGraphsAction;
|
||||||
QAction *_showGraphGridAction;
|
QAction *_showGraphGridAction;
|
||||||
|
QAction *_showGraphSliderInfoAction;
|
||||||
QAction *_distanceGraphAction;
|
QAction *_distanceGraphAction;
|
||||||
QAction *_timeGraphAction;
|
QAction *_timeGraphAction;
|
||||||
QAction *_showToolbarsAction;
|
QAction *_showToolbarsAction;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "heartrategraphitem.h"
|
||||||
#include "heartrategraph.h"
|
#include "heartrategraph.h"
|
||||||
|
|
||||||
|
|
||||||
HeartRateGraph::HeartRateGraph(QWidget *parent) : GraphTab(parent)
|
HeartRateGraph::HeartRateGraph(QWidget *parent) : GraphTab(parent)
|
||||||
{
|
{
|
||||||
_units = Metric;
|
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
GraphView::setYUnits(tr("1/min"));
|
GraphView::setYUnits(tr("1/min"));
|
||||||
@ -28,21 +28,16 @@ void HeartRateGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < data.tracks().count(); i++) {
|
for (int i = 0; i < data.tracks().count(); i++) {
|
||||||
const Graph &graph = data.tracks().at(i)->heartRate();
|
const Graph &graph = data.tracks().at(i)->heartRate();
|
||||||
qreal sum = 0, w = 0;
|
|
||||||
|
|
||||||
if (graph.size() < 2) {
|
if (graph.size() < 2) {
|
||||||
skipColor();
|
skipColor();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 1; j < graph.size(); j++) {
|
HeartRateGraphItem *gi = new HeartRateGraphItem(graph, _graphType);
|
||||||
qreal ds = graph.at(j).s() - graph.at(j-1).s();
|
GraphView::addGraph(gi, paths.at(i));
|
||||||
sum += graph.at(j).y() * ds;
|
|
||||||
w += ds;
|
|
||||||
}
|
|
||||||
_avg.append(QPointF(data.tracks().at(i)->distance(), sum/w));
|
|
||||||
|
|
||||||
GraphView::loadGraph(graph, paths.at(i));
|
_avg.append(QPointF(data.tracks().at(i)->distance(), gi->avg()));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < data.routes().count(); i++)
|
for (int i = 0; i < data.routes().count(); i++)
|
||||||
|
@ -22,7 +22,6 @@ private:
|
|||||||
|
|
||||||
QList<QPointF> _avg;
|
QList<QPointF> _avg;
|
||||||
|
|
||||||
enum Units _units;
|
|
||||||
bool _showTracks;
|
bool _showTracks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
26
src/heartrategraphitem.cpp
Normal file
26
src/heartrategraphitem.cpp
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include "tooltip.h"
|
||||||
|
#include "heartrategraphitem.h"
|
||||||
|
|
||||||
|
HeartRateGraphItem::HeartRateGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
|
{
|
||||||
|
qreal sum = 0;
|
||||||
|
|
||||||
|
for (int j = 1; j < graph.size(); j++)
|
||||||
|
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
|
||||||
|
_avg = sum/graph.last().s();
|
||||||
|
|
||||||
|
setToolTip(toolTip());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString HeartRateGraphItem::toolTip() const
|
||||||
|
{
|
||||||
|
ToolTip tt;
|
||||||
|
|
||||||
|
tt.insert(tr("Maximum"), QString::number(max(), 'f', 0)
|
||||||
|
+ UNIT_SPACE + tr("1/min"));
|
||||||
|
tt.insert(tr("Average"), QString::number(avg(), 'f', 0)
|
||||||
|
+ UNIT_SPACE + tr("1/min"));
|
||||||
|
|
||||||
|
return tt.toString();
|
||||||
|
}
|
23
src/heartrategraphitem.h
Normal file
23
src/heartrategraphitem.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef HEARTRATEGRAPHITEM_H
|
||||||
|
#define HEARTRATEGRAPHITEM_H
|
||||||
|
|
||||||
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
class HeartRateGraphItem : public GraphItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
HeartRateGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
|
qreal max() const {return -bounds().top();}
|
||||||
|
qreal avg() const {return _avg;}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString toolTip() const;
|
||||||
|
|
||||||
|
qreal _avg;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // HEARTRATEGRAPHITEM_H
|
@ -13,6 +13,9 @@
|
|||||||
#define ZOOM_IN QKeySequence::ZoomIn
|
#define ZOOM_IN QKeySequence::ZoomIn
|
||||||
#define ZOOM_OUT QKeySequence::ZoomOut
|
#define ZOOM_OUT QKeySequence::ZoomOut
|
||||||
|
|
||||||
|
#define TOGGLE_GRAPH_TYPE_KEY Qt::Key_X
|
||||||
|
#define TOGGLE_TIME_TYPE_KEY Qt::Key_T
|
||||||
|
|
||||||
#define QUIT_SHORTCUT QKeySequence(QKeySequence::Quit)
|
#define QUIT_SHORTCUT QKeySequence(QKeySequence::Quit)
|
||||||
#define OPEN_SHORTCUT QKeySequence(QKeySequence::Open)
|
#define OPEN_SHORTCUT QKeySequence(QKeySequence::Open)
|
||||||
#define CLOSE_SHORTCUT QKeySequence(QKeySequence::Close)
|
#define CLOSE_SHORTCUT QKeySequence(QKeySequence::Close)
|
||||||
@ -23,8 +26,6 @@
|
|||||||
#define NEXT_MAP_SHORTCUT QKeySequence(QKeySequence::Forward)
|
#define NEXT_MAP_SHORTCUT QKeySequence(QKeySequence::Forward)
|
||||||
#define PREV_MAP_SHORTCUT QKeySequence(QKeySequence::Back)
|
#define PREV_MAP_SHORTCUT QKeySequence(QKeySequence::Back)
|
||||||
#define SHOW_GRAPHS_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_G)
|
#define SHOW_GRAPHS_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_G)
|
||||||
#define DISTANCE_GRAPH_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_D)
|
|
||||||
#define TIME_GRAPH_SHORTCUT QKeySequence(Qt::CTRL + Qt::Key_T)
|
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
#define FULLSCREEN_SHORTCUT QKeySequence(Qt::META + Qt::CTRL + Qt::Key_F)
|
#define FULLSCREEN_SHORTCUT QKeySequence(Qt::META + Qt::CTRL + Qt::Key_F)
|
||||||
|
@ -56,13 +56,21 @@ OnlineMap::OnlineMap(const QString &name, const QString &url,
|
|||||||
_zooms = zooms;
|
_zooms = zooms;
|
||||||
_zoom = zooms.max();
|
_zoom = zooms.max();
|
||||||
|
|
||||||
connect(downloader, SIGNAL(finished()), this, SLOT(emitLoaded()));
|
|
||||||
|
|
||||||
QString path = TILES_DIR + QString("/") + name;
|
QString path = TILES_DIR + QString("/") + name;
|
||||||
if (!QDir().mkpath(path))
|
if (!QDir().mkpath(path))
|
||||||
qWarning("Error creating tiles dir: %s\n", qPrintable(path));
|
qWarning("Error creating tiles dir: %s\n", qPrintable(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnlineMap::load()
|
||||||
|
{
|
||||||
|
connect(downloader, SIGNAL(finished()), this, SLOT(emitLoaded()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnlineMap::unload()
|
||||||
|
{
|
||||||
|
disconnect(downloader, SIGNAL(finished()), this, SLOT(emitLoaded()));
|
||||||
|
}
|
||||||
|
|
||||||
void OnlineMap::fillTile(Tile &tile)
|
void OnlineMap::fillTile(Tile &tile)
|
||||||
{
|
{
|
||||||
tile.pixmap() = QPixmap(TILE_SIZE, TILE_SIZE);
|
tile.pixmap() = QPixmap(TILE_SIZE, TILE_SIZE);
|
||||||
|
@ -37,6 +37,9 @@ public:
|
|||||||
static void setDownloader(Downloader *downloader)
|
static void setDownloader(Downloader *downloader)
|
||||||
{OnlineMap::downloader = downloader;}
|
{OnlineMap::downloader = downloader;}
|
||||||
|
|
||||||
|
void load();
|
||||||
|
void unload();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void emitLoaded();
|
void emitLoaded();
|
||||||
|
|
||||||
|
@ -66,9 +66,10 @@ void PathItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
|||||||
|
|
||||||
void PathItem::setMap(Map *map)
|
void PathItem::setMap(Map *map)
|
||||||
{
|
{
|
||||||
_map = map;
|
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
|
|
||||||
|
_map = map;
|
||||||
|
|
||||||
updatePainterPath(map);
|
updatePainterPath(map);
|
||||||
updateShape();
|
updateShape();
|
||||||
|
|
||||||
@ -77,12 +78,18 @@ void PathItem::setMap(Map *map)
|
|||||||
|
|
||||||
void PathItem::setColor(const QColor &color)
|
void PathItem::setColor(const QColor &color)
|
||||||
{
|
{
|
||||||
|
if (_pen.color() == color)
|
||||||
|
return;
|
||||||
|
|
||||||
_pen.setColor(color);
|
_pen.setColor(color);
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PathItem::setWidth(qreal width)
|
void PathItem::setWidth(qreal width)
|
||||||
{
|
{
|
||||||
|
if (_width == width)
|
||||||
|
return;
|
||||||
|
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
|
|
||||||
_width = width;
|
_width = width;
|
||||||
@ -93,12 +100,18 @@ void PathItem::setWidth(qreal width)
|
|||||||
|
|
||||||
void PathItem::setStyle(Qt::PenStyle style)
|
void PathItem::setStyle(Qt::PenStyle style)
|
||||||
{
|
{
|
||||||
|
if (_pen.style() == style)
|
||||||
|
return;
|
||||||
|
|
||||||
_pen.setStyle(style);
|
_pen.setStyle(style);
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PathItem::setDigitalZoom(int zoom)
|
void PathItem::setDigitalZoom(int zoom)
|
||||||
{
|
{
|
||||||
|
if (_digitalZoom == zoom)
|
||||||
|
return;
|
||||||
|
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
|
|
||||||
_digitalZoom = zoom;
|
_digitalZoom = zoom;
|
||||||
@ -154,6 +167,19 @@ void PathItem::moveMarker(qreal distance)
|
|||||||
_marker->setVisible(false);
|
_marker->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PathItem::hover(bool hover)
|
||||||
|
{
|
||||||
|
if (hover) {
|
||||||
|
_pen.setWidth(_width + 1);
|
||||||
|
setZValue(zValue() + 1.0);
|
||||||
|
} else {
|
||||||
|
_pen.setWidth(_width);
|
||||||
|
setZValue(zValue() - 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
void PathItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
void PathItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
|
||||||
{
|
{
|
||||||
Q_UNUSED(event);
|
Q_UNUSED(event);
|
||||||
|
@ -32,6 +32,7 @@ public:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void moveMarker(qreal distance);
|
void moveMarker(qreal distance);
|
||||||
|
void hover(bool hover);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void selected(bool);
|
void selected(bool);
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#include <QWheelEvent>
|
#include <QWheelEvent>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QPixmapCache>
|
#include <QPixmapCache>
|
||||||
|
#include <QScrollBar>
|
||||||
#include "opengl.h"
|
#include "opengl.h"
|
||||||
#include "misc.h"
|
#include "misc.h"
|
||||||
#include "poi.h"
|
#include "poi.h"
|
||||||
@ -39,10 +40,11 @@ PathView::PathView(Map *map, POI *poi, QWidget *parent)
|
|||||||
|
|
||||||
_mapScale = new ScaleItem();
|
_mapScale = new ScaleItem();
|
||||||
_mapScale->setZValue(2.0);
|
_mapScale->setZValue(2.0);
|
||||||
|
_scene->addItem(_mapScale);
|
||||||
|
|
||||||
_map = map;
|
_map = map;
|
||||||
_poi = poi;
|
_poi = poi;
|
||||||
connect(_map, SIGNAL(loaded()), this, SLOT(redraw()));
|
connect(_map, SIGNAL(loaded()), this, SLOT(reloadMap()));
|
||||||
connect(_poi, SIGNAL(pointsChanged()), this, SLOT(updatePOI()));
|
connect(_poi, SIGNAL(pointsChanged()), this, SLOT(updatePOI()));
|
||||||
|
|
||||||
_units = Metric;
|
_units = Metric;
|
||||||
@ -72,13 +74,26 @@ PathView::PathView(Map *map, POI *poi, QWidget *parent)
|
|||||||
|
|
||||||
_map->setBackgroundColor(_backgroundColor);
|
_map->setBackgroundColor(_backgroundColor);
|
||||||
_scene->setSceneRect(_map->bounds());
|
_scene->setSceneRect(_map->bounds());
|
||||||
_res = _map->resolution(_scene->sceneRect().center());
|
|
||||||
|
centerOn(_scene->sceneRect().center());
|
||||||
}
|
}
|
||||||
|
|
||||||
PathView::~PathView()
|
void PathView::centerOn(const QPointF &pos)
|
||||||
{
|
{
|
||||||
if (_mapScale->scene() != _scene)
|
QGraphicsView::centerOn(pos);
|
||||||
delete _mapScale;
|
|
||||||
|
/* Fix the offset caused by QGraphicsView::centerOn() approximation */
|
||||||
|
QPointF center = mapToScene(viewport()->rect().center());
|
||||||
|
QPoint offset((int)(pos.x() - center.x()), (int)(pos.y() - center.y()));
|
||||||
|
if (qAbs(offset.x()) == 1)
|
||||||
|
horizontalScrollBar()->setValue(horizontalScrollBar()->value()
|
||||||
|
+ offset.x());
|
||||||
|
if (qAbs(offset.y()) == 1)
|
||||||
|
verticalScrollBar()->setValue(verticalScrollBar()->value()
|
||||||
|
+ offset.y());
|
||||||
|
|
||||||
|
_res = _map->resolution(pos);
|
||||||
|
_mapScale->setResolution(_res);
|
||||||
}
|
}
|
||||||
|
|
||||||
PathItem *PathView::addTrack(const Track &track)
|
PathItem *PathView::addTrack(const Track &track)
|
||||||
@ -169,13 +184,7 @@ QList<PathItem *> PathView::loadData(const Data &data)
|
|||||||
else
|
else
|
||||||
updatePOIVisibility();
|
updatePOIVisibility();
|
||||||
|
|
||||||
QPointF center = contentCenter();
|
centerOn(contentCenter());
|
||||||
centerOn(center);
|
|
||||||
|
|
||||||
_res = _map->resolution(center);
|
|
||||||
_mapScale->setResolution(_res);
|
|
||||||
if (_mapScale->scene() != _scene)
|
|
||||||
_scene->addItem(_mapScale);
|
|
||||||
|
|
||||||
return paths;
|
return paths;
|
||||||
}
|
}
|
||||||
@ -260,11 +269,11 @@ void PathView::setMap(Map *map)
|
|||||||
qreal resolution = _map->resolution(pos);
|
qreal resolution = _map->resolution(pos);
|
||||||
|
|
||||||
_map->unload();
|
_map->unload();
|
||||||
disconnect(_map, SIGNAL(loaded()), this, SLOT(redraw()));
|
disconnect(_map, SIGNAL(loaded()), this, SLOT(reloadMap()));
|
||||||
|
|
||||||
_map = map;
|
_map = map;
|
||||||
_map->load();
|
_map->load();
|
||||||
connect(_map, SIGNAL(loaded()), this, SLOT(redraw()));
|
connect(_map, SIGNAL(loaded()), this, SLOT(reloadMap()));
|
||||||
|
|
||||||
resetDigitalZoom();
|
resetDigitalZoom();
|
||||||
|
|
||||||
@ -283,11 +292,7 @@ void PathView::setMap(Map *map)
|
|||||||
it.value()->setMap(_map);
|
it.value()->setMap(_map);
|
||||||
updatePOIVisibility();
|
updatePOIVisibility();
|
||||||
|
|
||||||
pos = _map->ll2xy(center);
|
centerOn(_map->ll2xy(center));
|
||||||
centerOn(pos);
|
|
||||||
|
|
||||||
_res = _map->resolution(pos);
|
|
||||||
_mapScale->setResolution(_res);
|
|
||||||
|
|
||||||
resetCachedContent();
|
resetCachedContent();
|
||||||
QPixmapCache::clear();
|
QPixmapCache::clear();
|
||||||
@ -361,8 +366,9 @@ void PathView::setUnits(enum Units units)
|
|||||||
it.value()->setUnits(units);
|
it.value()->setUnits(units);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PathView::redraw()
|
void PathView::clearMapCache()
|
||||||
{
|
{
|
||||||
|
_map->clearCache();
|
||||||
resetCachedContent();
|
resetCachedContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,15 +427,8 @@ void PathView::zoom(int zoom, const QPoint &pos, const Coordinates &c)
|
|||||||
ns = (zoom > 0) ? _map->zoomIn() : _map->zoomOut();
|
ns = (zoom > 0) ? _map->zoomIn() : _map->zoomOut();
|
||||||
|
|
||||||
if (ns != os) {
|
if (ns != os) {
|
||||||
QPoint offset = pos - viewport()->rect().center();
|
|
||||||
|
|
||||||
rescale();
|
rescale();
|
||||||
|
centerOn(_map->ll2xy(c) - (pos - viewport()->rect().center()));
|
||||||
QPointF center = _map->ll2xy(c) - offset;
|
|
||||||
centerOn(center);
|
|
||||||
|
|
||||||
_res = _map->resolution(center);
|
|
||||||
_mapScale->setResolution(_res);
|
|
||||||
} else {
|
} else {
|
||||||
if (shift)
|
if (shift)
|
||||||
digitalZoom(zoom);
|
digitalZoom(zoom);
|
||||||
@ -523,11 +522,11 @@ void PathView::plot(QPainter *painter, const QRectF &target, qreal scale,
|
|||||||
adj = QRect(0, 0, adj.width() * s.x(), adj.height() * s.y());
|
adj = QRect(0, 0, adj.width() * s.x(), adj.height() * s.y());
|
||||||
_map->zoomFit(adj.size(), _tr | _rr | _wr);
|
_map->zoomFit(adj.size(), _tr | _rr | _wr);
|
||||||
rescale();
|
rescale();
|
||||||
|
|
||||||
QPointF center = contentCenter();
|
QPointF center = contentCenter();
|
||||||
centerOn(center);
|
centerOn(center);
|
||||||
adj.moveCenter(mapFromScene(center));
|
adj.moveCenter(mapFromScene(center));
|
||||||
|
|
||||||
_mapScale->setResolution(_map->resolution(_map->ll2xy(origLL)));
|
|
||||||
_mapScale->setDigitalZoom(-log2(s.x() / q));
|
_mapScale->setDigitalZoom(-log2(s.x() / q));
|
||||||
_mapScale->setPos(mapToScene(QPoint(adj.bottomRight() + QPoint(
|
_mapScale->setPos(mapToScene(QPoint(adj.bottomRight() + QPoint(
|
||||||
-(SCALE_OFFSET + _mapScale->boundingRect().width()) * (s.x() / q),
|
-(SCALE_OFFSET + _mapScale->boundingRect().width()) * (s.x() / q),
|
||||||
@ -547,7 +546,6 @@ void PathView::plot(QPainter *painter, const QRectF &target, qreal scale,
|
|||||||
_map->zoomFit(origRes, origLL);
|
_map->zoomFit(origRes, origLL);
|
||||||
rescale();
|
rescale();
|
||||||
centerOn(origScene);
|
centerOn(origScene);
|
||||||
_mapScale->setResolution(origRes);
|
|
||||||
}
|
}
|
||||||
_mapScale->setDigitalZoom(0);
|
_mapScale->setDigitalZoom(0);
|
||||||
_mapScale->setPos(origPos);
|
_mapScale->setPos(origPos);
|
||||||
@ -560,14 +558,15 @@ void PathView::plot(QPainter *painter, const QRectF &target, qreal scale,
|
|||||||
|
|
||||||
void PathView::clear()
|
void PathView::clear()
|
||||||
{
|
{
|
||||||
if (_mapScale->scene() == _scene)
|
|
||||||
_scene->removeItem(_mapScale);
|
|
||||||
|
|
||||||
_pois.clear();
|
_pois.clear();
|
||||||
_tracks.clear();
|
_tracks.clear();
|
||||||
_routes.clear();
|
_routes.clear();
|
||||||
_waypoints.clear();
|
_waypoints.clear();
|
||||||
|
|
||||||
|
_scene->removeItem(_mapScale);
|
||||||
_scene->clear();
|
_scene->clear();
|
||||||
|
_scene->addItem(_mapScale);
|
||||||
|
|
||||||
_palette.reset();
|
_palette.reset();
|
||||||
|
|
||||||
_tr = RectC();
|
_tr = RectC();
|
||||||
@ -756,11 +755,7 @@ void PathView::resizeEvent(QResizeEvent *event)
|
|||||||
if (mapZoom() != zoom)
|
if (mapZoom() != zoom)
|
||||||
rescale();
|
rescale();
|
||||||
|
|
||||||
QPointF center = contentCenter();
|
centerOn(contentCenter());
|
||||||
centerOn(center);
|
|
||||||
|
|
||||||
_res = _map->resolution(center);
|
|
||||||
_mapScale->setResolution(_res);
|
|
||||||
|
|
||||||
QGraphicsView::resizeEvent(event);
|
QGraphicsView::resizeEvent(event);
|
||||||
}
|
}
|
||||||
@ -801,3 +796,8 @@ void PathView::useAntiAliasing(bool use)
|
|||||||
{
|
{
|
||||||
setRenderHint(QPainter::Antialiasing, use);
|
setRenderHint(QPainter::Antialiasing, use);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PathView::reloadMap()
|
||||||
|
{
|
||||||
|
resetCachedContent();
|
||||||
|
}
|
||||||
|
@ -28,7 +28,6 @@ class PathView : public QGraphicsView
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
PathView(Map *map, POI *poi, QWidget *parent = 0);
|
PathView(Map *map, POI *poi, QWidget *parent = 0);
|
||||||
~PathView();
|
|
||||||
|
|
||||||
QList<PathItem*> loadData(const Data &data);
|
QList<PathItem*> loadData(const Data &data);
|
||||||
|
|
||||||
@ -59,8 +58,6 @@ public:
|
|||||||
void useAntiAliasing(bool use);
|
void useAntiAliasing(bool use);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void redraw();
|
|
||||||
|
|
||||||
void showMap(bool show);
|
void showMap(bool show);
|
||||||
void showPOI(bool show);
|
void showPOI(bool show);
|
||||||
void setPOIOverlap(bool overlap);
|
void setPOIOverlap(bool overlap);
|
||||||
@ -70,9 +67,11 @@ public slots:
|
|||||||
void showRoutes(bool show);
|
void showRoutes(bool show);
|
||||||
void showWaypoints(bool show);
|
void showWaypoints(bool show);
|
||||||
void showRouteWaypoints(bool show);
|
void showRouteWaypoints(bool show);
|
||||||
|
void clearMapCache();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void updatePOI();
|
void updatePOI();
|
||||||
|
void reloadMap();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PathItem *addTrack(const Track &track);
|
PathItem *addTrack(const Track &track);
|
||||||
@ -85,6 +84,7 @@ private:
|
|||||||
qreal mapZoom() const;
|
qreal mapZoom() const;
|
||||||
QPointF contentCenter() const;
|
QPointF contentCenter() const;
|
||||||
void rescale();
|
void rescale();
|
||||||
|
void centerOn(const QPointF &pos);
|
||||||
void zoom(int zoom, const QPoint &pos, const Coordinates &c);
|
void zoom(int zoom, const QPoint &pos, const Coordinates &c);
|
||||||
void digitalZoom(int zoom);
|
void digitalZoom(int zoom);
|
||||||
void resetDigitalZoom();
|
void resetDigitalZoom();
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "powergraphitem.h"
|
||||||
#include "powergraph.h"
|
#include "powergraph.h"
|
||||||
|
|
||||||
|
|
||||||
PowerGraph::PowerGraph(QWidget *parent) : GraphTab(parent)
|
PowerGraph::PowerGraph(QWidget *parent) : GraphTab(parent)
|
||||||
{
|
{
|
||||||
_units = Metric;
|
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
GraphView::setYUnits(tr("W"));
|
GraphView::setYUnits(tr("W"));
|
||||||
@ -28,21 +28,16 @@ void PowerGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < data.tracks().count(); i++) {
|
for (int i = 0; i < data.tracks().count(); i++) {
|
||||||
const Graph &graph = data.tracks().at(i)->power();
|
const Graph &graph = data.tracks().at(i)->power();
|
||||||
qreal sum = 0, w = 0;
|
|
||||||
|
|
||||||
if (graph.size() < 2) {
|
if (graph.size() < 2) {
|
||||||
skipColor();
|
skipColor();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 1; j < graph.size(); j++) {
|
PowerGraphItem *gi = new PowerGraphItem(graph, _graphType);
|
||||||
qreal ds = graph.at(j).s() - graph.at(j-1).s();
|
GraphView::addGraph(gi, paths.at(i));
|
||||||
sum += graph.at(j).y() * ds;
|
|
||||||
w += ds;
|
|
||||||
}
|
|
||||||
_avg.append(QPointF(data.tracks().at(i)->distance(), sum/w));
|
|
||||||
|
|
||||||
GraphView::loadGraph(graph, paths.at(i));
|
_avg.append(QPointF(data.tracks().at(i)->distance(), gi->avg()));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < data.routes().count(); i++)
|
for (int i = 0; i < data.routes().count(); i++)
|
||||||
|
@ -22,7 +22,6 @@ private:
|
|||||||
|
|
||||||
QList<QPointF> _avg;
|
QList<QPointF> _avg;
|
||||||
|
|
||||||
enum Units _units;
|
|
||||||
bool _showTracks;
|
bool _showTracks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
26
src/powergraphitem.cpp
Normal file
26
src/powergraphitem.cpp
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include "tooltip.h"
|
||||||
|
#include "powergraphitem.h"
|
||||||
|
|
||||||
|
PowerGraphItem::PowerGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
|
{
|
||||||
|
qreal sum = 0;
|
||||||
|
|
||||||
|
for (int j = 1; j < graph.size(); j++)
|
||||||
|
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
|
||||||
|
_avg = sum/graph.last().s();
|
||||||
|
|
||||||
|
setToolTip(toolTip());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString PowerGraphItem::toolTip() const
|
||||||
|
{
|
||||||
|
ToolTip tt;
|
||||||
|
|
||||||
|
tt.insert(tr("Maximum"), QString::number(max(), 'f', 1)
|
||||||
|
+ UNIT_SPACE + tr("1/min"));
|
||||||
|
tt.insert(tr("Average"), QString::number(avg(), 'f', 1)
|
||||||
|
+ UNIT_SPACE + tr("1/min"));
|
||||||
|
|
||||||
|
return tt.toString();
|
||||||
|
}
|
23
src/powergraphitem.h
Normal file
23
src/powergraphitem.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef POWERGRAPHITEM_H
|
||||||
|
#define POWERGRAPHITEM_H
|
||||||
|
|
||||||
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
class PowerGraphItem : public GraphItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
PowerGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
|
qreal max() const {return -bounds().top();}
|
||||||
|
qreal avg() const {return _avg;}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString toolTip() const;
|
||||||
|
|
||||||
|
qreal _avg;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // POWERGRAPHITEM_H
|
@ -7,7 +7,7 @@
|
|||||||
#include "routeitem.h"
|
#include "routeitem.h"
|
||||||
|
|
||||||
|
|
||||||
QString RouteItem::toolTip(Units units)
|
QString RouteItem::toolTip(Units units) const
|
||||||
{
|
{
|
||||||
ToolTip tt;
|
ToolTip tt;
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@ class RouteItem : public PathItem
|
|||||||
public:
|
public:
|
||||||
RouteItem(const Route &route, Map *map, QGraphicsItem *parent = 0);
|
RouteItem(const Route &route, Map *map, QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
//void setScale(qreal scale);
|
|
||||||
void setMap(Map *map);
|
void setMap(Map *map);
|
||||||
|
|
||||||
void setUnits(Units units);
|
void setUnits(Units units);
|
||||||
@ -22,7 +21,7 @@ public:
|
|||||||
void showWaypointLabels(bool show);
|
void showWaypointLabels(bool show);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString toolTip(Units units);
|
QString toolTip(Units units) const;
|
||||||
|
|
||||||
QString _name;
|
QString _name;
|
||||||
QString _desc;
|
QString _desc;
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
#define GRAPH_TYPE_DEFAULT Distance
|
#define GRAPH_TYPE_DEFAULT Distance
|
||||||
#define SHOW_GRAPH_GRIDS_SETTING "grid"
|
#define SHOW_GRAPH_GRIDS_SETTING "grid"
|
||||||
#define SHOW_GRAPH_GRIDS_DEFAULT true
|
#define SHOW_GRAPH_GRIDS_DEFAULT true
|
||||||
|
#define SHOW_GRAPH_SLIDER_INFO_SETTING "sliderInfo"
|
||||||
|
#define SHOW_GRAPH_SLIDER_INFO_DEFAULT true
|
||||||
|
|
||||||
#define MAP_SETTINGS_GROUP "Map"
|
#define MAP_SETTINGS_GROUP "Map"
|
||||||
#define CURRENT_MAP_SETTING "map"
|
#define CURRENT_MAP_SETTING "map"
|
||||||
|
@ -17,10 +17,12 @@ void SliderInfoItem::updateBoundingRect()
|
|||||||
font.setFamily(FONT_FAMILY);
|
font.setFamily(FONT_FAMILY);
|
||||||
QFontMetrics fm(font);
|
QFontMetrics fm(font);
|
||||||
|
|
||||||
|
qreal width = qMax(fm.width(_x), fm.width(_y));
|
||||||
|
qreal height = 2 * fm.height() - 2*fm.descent();
|
||||||
|
|
||||||
_boundingRect = (_side == Right)
|
_boundingRect = (_side == Right)
|
||||||
? QRectF(-SIZE/2, 0, fm.width(_text) + SIZE, fm.height())
|
? QRectF(-SIZE/2, -height/2, width + 1.5*SIZE, height)
|
||||||
: QRectF(-(fm.width(_text) + SIZE/2), 0, fm.width(_text) + SIZE,
|
: QRectF(-(width + SIZE), -height/2, width + 1.5*SIZE, height);
|
||||||
fm.height());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SliderInfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
void SliderInfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
||||||
@ -32,25 +34,48 @@ void SliderInfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem
|
|||||||
font.setPixelSize(FONT_SIZE);
|
font.setPixelSize(FONT_SIZE);
|
||||||
font.setFamily(FONT_FAMILY);
|
font.setFamily(FONT_FAMILY);
|
||||||
QFontMetrics fm(font);
|
QFontMetrics fm(font);
|
||||||
|
QRectF rx, ry;
|
||||||
|
|
||||||
|
|
||||||
|
qreal width = qMax(fm.width(_x), fm.width(_y));
|
||||||
|
if (_side == Right) {
|
||||||
|
ry = QRectF(SIZE, -fm.height() + fm.descent(), fm.width(_y),
|
||||||
|
fm.height() - fm.descent());
|
||||||
|
rx = QRectF(SIZE, 0, fm.width(_x), fm.height()
|
||||||
|
- fm.descent());
|
||||||
|
} else {
|
||||||
|
ry = QRectF(-(width + SIZE), -fm.height() + fm.descent(), fm.width(_y),
|
||||||
|
fm.height() - fm.descent());
|
||||||
|
rx = QRectF(-(width + SIZE), 0, fm.width(_x), fm.height()
|
||||||
|
- fm.descent());
|
||||||
|
}
|
||||||
|
|
||||||
|
painter->setPen(Qt::NoPen);
|
||||||
|
painter->setBrush(QBrush(QColor(255, 255, 255, 196)));
|
||||||
|
painter->drawRect(ry);
|
||||||
|
painter->drawRect(rx);
|
||||||
|
painter->setBrush(Qt::NoBrush);
|
||||||
|
|
||||||
painter->setFont(font);
|
painter->setFont(font);
|
||||||
painter->setRenderHint(QPainter::Antialiasing, false);
|
painter->setRenderHint(QPainter::Antialiasing, false);
|
||||||
painter->setPen(Qt::red);
|
painter->setPen(Qt::red);
|
||||||
|
|
||||||
if (_side == Right)
|
if (_side == Right) {
|
||||||
painter->drawText(SIZE, fm.height() - fm.descent(), _text);
|
painter->drawText(SIZE, -fm.descent()/2, _y);
|
||||||
else
|
painter->drawText(SIZE, fm.height() - fm.descent()*1.5, _x);
|
||||||
painter->drawText(-(fm.width(_text) + SIZE/2),
|
} else {
|
||||||
fm.height() - fm.descent(), _text);
|
painter->drawText(-(width + SIZE), -fm.descent()/2, _y);
|
||||||
|
painter->drawText(-(width + SIZE), fm.height() - fm.descent()*1.5, _x);
|
||||||
|
}
|
||||||
painter->drawLine(QPointF(-SIZE/2, 0), QPointF(SIZE/2, 0));
|
painter->drawLine(QPointF(-SIZE/2, 0), QPointF(SIZE/2, 0));
|
||||||
|
|
||||||
//painter->drawRect(boundingRect());
|
//painter->drawRect(boundingRect());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SliderInfoItem::setText(const QString &text)
|
void SliderInfoItem::setText(const QString &x, const QString &y)
|
||||||
{
|
{
|
||||||
prepareGeometryChange();
|
prepareGeometryChange();
|
||||||
_text = text;
|
_x = x; _y = y;
|
||||||
updateBoundingRect();
|
updateBoundingRect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,14 +14,14 @@ public:
|
|||||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
QWidget *widget);
|
QWidget *widget);
|
||||||
|
|
||||||
void setText(const QString &text);
|
void setText(const QString &x, const QString &y);
|
||||||
void setSide(Side side);
|
void setSide(Side side);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateBoundingRect();
|
void updateBoundingRect();
|
||||||
|
|
||||||
Side _side;
|
Side _side;
|
||||||
QString _text;
|
QString _x, _y;
|
||||||
QRectF _boundingRect;
|
QRectF _boundingRect;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "tooltip.h"
|
||||||
|
#include "speedgraphitem.h"
|
||||||
#include "speedgraph.h"
|
#include "speedgraph.h"
|
||||||
|
|
||||||
|
|
||||||
SpeedGraph::SpeedGraph(QWidget *parent) : GraphTab(parent)
|
SpeedGraph::SpeedGraph(QWidget *parent) : GraphTab(parent)
|
||||||
{
|
{
|
||||||
_units = Metric;
|
|
||||||
_timeType = Total;
|
_timeType = Total;
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
setYUnits();
|
setYUnits(Metric);
|
||||||
setYLabel(tr("Speed"));
|
setYLabel(tr("Speed"));
|
||||||
|
|
||||||
setSliderPrecision(1);
|
setSliderPrecision(1);
|
||||||
@ -29,18 +30,21 @@ void SpeedGraph::setInfo()
|
|||||||
void SpeedGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
void SpeedGraph::loadData(const Data &data, const QList<PathItem *> &paths)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < data.tracks().count(); i++) {
|
for (int i = 0; i < data.tracks().count(); i++) {
|
||||||
const Graph &graph = data.tracks().at(i)->speed();
|
const Track *track = data.tracks().at(i);
|
||||||
|
const Graph &graph = track->speed();
|
||||||
|
|
||||||
if (graph.size() < 2) {
|
if (graph.size() < 2) {
|
||||||
skipColor();
|
skipColor();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
_avg.append(QPointF(data.tracks().at(i)->distance(),
|
SpeedGraphItem *gi = new SpeedGraphItem(graph, _graphType,
|
||||||
data.tracks().at(i)->distance() / data.tracks().at(i)->time()));
|
track->movingTime());
|
||||||
_avgM.append(QPointF(data.tracks().at(i)->distance(),
|
gi->setTimeType(_timeType);
|
||||||
data.tracks().at(i)->distance() / data.tracks().at(i)->movingTime()));
|
GraphView::addGraph(gi, paths.at(i));
|
||||||
|
|
||||||
GraphView::loadGraph(graph, paths.at(i));
|
_avg.append(QPointF(track->distance(), gi->avg()));
|
||||||
|
_mavg.append(QPointF(track->distance(), gi->mavg()));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < data.routes().count(); i++)
|
for (int i = 0; i < data.routes().count(); i++)
|
||||||
@ -55,7 +59,7 @@ qreal SpeedGraph::avg() const
|
|||||||
{
|
{
|
||||||
qreal sum = 0, w = 0;
|
qreal sum = 0, w = 0;
|
||||||
QList<QPointF>::const_iterator it;
|
QList<QPointF>::const_iterator it;
|
||||||
const QList<QPointF> &list = (_timeType == Moving) ? _avgM : _avg;
|
const QList<QPointF> &list = (_timeType == Moving) ? _mavg : _avg;
|
||||||
|
|
||||||
for (it = list.begin(); it != list.end(); it++) {
|
for (it = list.begin(); it != list.end(); it++) {
|
||||||
sum += it->y() * it->x();
|
sum += it->y() * it->x();
|
||||||
@ -68,14 +72,14 @@ qreal SpeedGraph::avg() const
|
|||||||
void SpeedGraph::clear()
|
void SpeedGraph::clear()
|
||||||
{
|
{
|
||||||
_avg.clear();
|
_avg.clear();
|
||||||
_avgM.clear();
|
_mavg.clear();
|
||||||
|
|
||||||
GraphView::clear();
|
GraphView::clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpeedGraph::setYUnits()
|
void SpeedGraph::setYUnits(Units units)
|
||||||
{
|
{
|
||||||
if (_units == Metric) {
|
if (units == Metric) {
|
||||||
GraphView::setYUnits(tr("km/h"));
|
GraphView::setYUnits(tr("km/h"));
|
||||||
setYScale(MS2KMH);
|
setYScale(MS2KMH);
|
||||||
} else {
|
} else {
|
||||||
@ -84,21 +88,21 @@ void SpeedGraph::setYUnits()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpeedGraph::setUnits(enum Units units)
|
void SpeedGraph::setUnits(Units units)
|
||||||
{
|
{
|
||||||
_units = units;
|
setYUnits(units);
|
||||||
|
|
||||||
setYUnits();
|
|
||||||
setInfo();
|
setInfo();
|
||||||
GraphView::setUnits(units);
|
|
||||||
|
|
||||||
redraw();
|
GraphView::setUnits(units);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpeedGraph::setTimeType(enum TimeType type)
|
void SpeedGraph::setTimeType(enum TimeType type)
|
||||||
{
|
{
|
||||||
_timeType = type;
|
_timeType = type;
|
||||||
|
|
||||||
|
for (int i = 0; i < _graphs.size(); i++)
|
||||||
|
static_cast<SpeedGraphItem*>(_graphs.at(i))->setTimeType(type);
|
||||||
|
|
||||||
setInfo();
|
setInfo();
|
||||||
redraw();
|
redraw();
|
||||||
}
|
}
|
||||||
|
@ -14,20 +14,19 @@ public:
|
|||||||
QString label() const {return tr("Speed");}
|
QString label() const {return tr("Speed");}
|
||||||
void loadData(const Data &data, const QList<PathItem *> &paths);
|
void loadData(const Data &data, const QList<PathItem *> &paths);
|
||||||
void clear();
|
void clear();
|
||||||
void setUnits(enum Units units);
|
void setUnits(Units units);
|
||||||
void setTimeType(enum TimeType type);
|
void setTimeType(TimeType type);
|
||||||
void showTracks(bool show);
|
void showTracks(bool show);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
qreal avg() const;
|
qreal avg() const;
|
||||||
qreal max() const {return bounds().bottom();}
|
qreal max() const {return bounds().bottom();}
|
||||||
void setYUnits();
|
void setYUnits(Units units);
|
||||||
void setInfo();
|
void setInfo();
|
||||||
|
|
||||||
QList<QPointF> _avg;
|
QList<QPointF> _avg;
|
||||||
QList<QPointF> _avgM;
|
QList<QPointF> _mavg;
|
||||||
|
|
||||||
enum Units _units;
|
|
||||||
enum TimeType _timeType;
|
enum TimeType _timeType;
|
||||||
bool _showTracks;
|
bool _showTracks;
|
||||||
};
|
};
|
||||||
|
40
src/speedgraphitem.cpp
Normal file
40
src/speedgraphitem.cpp
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#include "tooltip.h"
|
||||||
|
#include "speedgraphitem.h"
|
||||||
|
|
||||||
|
SpeedGraphItem::SpeedGraphItem(const Graph &graph, GraphType type,
|
||||||
|
qreal movingTime, QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
|
{
|
||||||
|
_units = Metric;
|
||||||
|
_timeType = Total;
|
||||||
|
|
||||||
|
_avg = graph.last().s() / graph.last().t();
|
||||||
|
_mavg = graph.last().s() / movingTime;
|
||||||
|
|
||||||
|
setToolTip(toolTip());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString SpeedGraphItem::toolTip() const
|
||||||
|
{
|
||||||
|
ToolTip tt;
|
||||||
|
qreal scale = (_units == Metric) ? MS2KMH : MS2MIH;
|
||||||
|
QString su = (_units == Metric) ? tr("km/h") : tr("mi/h");
|
||||||
|
|
||||||
|
tt.insert(tr("Maximum"), QString::number(max() * scale, 'f', 1)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
tt.insert(tr("Average"), QString::number((_timeType == Total)
|
||||||
|
? avg() * scale : mavg() * scale, 'f', 1) + UNIT_SPACE + su);
|
||||||
|
|
||||||
|
return tt.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpeedGraphItem::setUnits(Units units)
|
||||||
|
{
|
||||||
|
_units = units;
|
||||||
|
setToolTip(toolTip());
|
||||||
|
}
|
||||||
|
|
||||||
|
void SpeedGraphItem::setTimeType(TimeType type)
|
||||||
|
{
|
||||||
|
_timeType = type;
|
||||||
|
setToolTip(toolTip());
|
||||||
|
}
|
31
src/speedgraphitem.h
Normal file
31
src/speedgraphitem.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef SPEEDGRAPHITEM_H
|
||||||
|
#define SPEEDGRAPHITEM_H
|
||||||
|
|
||||||
|
#include "timetype.h"
|
||||||
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
class SpeedGraphItem : public GraphItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
SpeedGraphItem(const Graph &graph, GraphType type, qreal movingTime,
|
||||||
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
|
qreal max() const {return -bounds().top();}
|
||||||
|
qreal avg() const {return _avg;}
|
||||||
|
qreal mavg() const {return _mavg;}
|
||||||
|
|
||||||
|
void setUnits(Units units);
|
||||||
|
void setTimeType(TimeType type);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString toolTip() const;
|
||||||
|
|
||||||
|
qreal _avg, _mavg;
|
||||||
|
|
||||||
|
Units _units;
|
||||||
|
TimeType _timeType;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SPEEDGRAPHITEM_H
|
@ -1,13 +1,13 @@
|
|||||||
#include "data.h"
|
#include "data.h"
|
||||||
|
#include "temperaturegraphitem.h"
|
||||||
#include "temperaturegraph.h"
|
#include "temperaturegraph.h"
|
||||||
|
|
||||||
|
|
||||||
TemperatureGraph::TemperatureGraph(QWidget *parent) : GraphTab(parent)
|
TemperatureGraph::TemperatureGraph(QWidget *parent) : GraphTab(parent)
|
||||||
{
|
{
|
||||||
_units = Metric;
|
|
||||||
_showTracks = true;
|
_showTracks = true;
|
||||||
|
|
||||||
setYUnits();
|
setYUnits(Metric);
|
||||||
setYLabel(tr("Temperature"));
|
setYLabel(tr("Temperature"));
|
||||||
|
|
||||||
setSliderPrecision(1);
|
setSliderPrecision(1);
|
||||||
@ -30,21 +30,16 @@ void TemperatureGraph::loadData(const Data &data, const QList<PathItem *> &paths
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < data.tracks().count(); i++) {
|
for (int i = 0; i < data.tracks().count(); i++) {
|
||||||
const Graph &graph = data.tracks().at(i)->temperature();
|
const Graph &graph = data.tracks().at(i)->temperature();
|
||||||
qreal sum = 0, w = 0;
|
|
||||||
|
|
||||||
if (graph.size() < 2) {
|
if (graph.size() < 2) {
|
||||||
skipColor();
|
skipColor();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 1; j < graph.size(); j++) {
|
TemperatureGraphItem *gi = new TemperatureGraphItem(graph, _graphType);
|
||||||
qreal ds = graph.at(j).s() - graph.at(j-1).s();
|
GraphView::addGraph(gi, paths.at(i));
|
||||||
sum += graph.at(j).y() * ds;
|
|
||||||
w += ds;
|
|
||||||
}
|
|
||||||
_avg.append(QPointF(data.tracks().at(i)->distance(), sum/w));
|
|
||||||
|
|
||||||
GraphView::loadGraph(graph, paths.at(i));
|
_avg.append(QPointF(data.tracks().at(i)->distance(), gi->avg()));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < data.routes().count(); i++)
|
for (int i = 0; i < data.routes().count(); i++)
|
||||||
@ -75,9 +70,9 @@ void TemperatureGraph::clear()
|
|||||||
GraphView::clear();
|
GraphView::clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TemperatureGraph::setYUnits()
|
void TemperatureGraph::setYUnits(Units units)
|
||||||
{
|
{
|
||||||
if (_units == Metric) {
|
if (units == Metric) {
|
||||||
GraphView::setYUnits(QChar(0x00B0) + tr("C"));
|
GraphView::setYUnits(QChar(0x00B0) + tr("C"));
|
||||||
setYScale(1);
|
setYScale(1);
|
||||||
setYOffset(0);
|
setYOffset(0);
|
||||||
@ -88,15 +83,12 @@ void TemperatureGraph::setYUnits()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TemperatureGraph::setUnits(enum Units units)
|
void TemperatureGraph::setUnits(Units units)
|
||||||
{
|
{
|
||||||
_units = units;
|
setYUnits(units);
|
||||||
|
|
||||||
setYUnits();
|
|
||||||
setInfo();
|
setInfo();
|
||||||
GraphView::setUnits(units);
|
|
||||||
|
|
||||||
redraw();
|
GraphView::setUnits(units);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TemperatureGraph::showTracks(bool show)
|
void TemperatureGraph::showTracks(bool show)
|
||||||
|
@ -20,12 +20,11 @@ private:
|
|||||||
qreal avg() const;
|
qreal avg() const;
|
||||||
qreal min() const {return bounds().top();}
|
qreal min() const {return bounds().top();}
|
||||||
qreal max() const {return bounds().bottom();}
|
qreal max() const {return bounds().bottom();}
|
||||||
void setYUnits();
|
void setYUnits(Units units);
|
||||||
void setInfo();
|
void setInfo();
|
||||||
|
|
||||||
QList<QPointF> _avg;
|
QList<QPointF> _avg;
|
||||||
|
|
||||||
enum Units _units;
|
|
||||||
bool _showTracks;
|
bool _showTracks;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
37
src/temperaturegraphitem.cpp
Normal file
37
src/temperaturegraphitem.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include "tooltip.h"
|
||||||
|
#include "temperaturegraphitem.h"
|
||||||
|
|
||||||
|
TemperatureGraphItem::TemperatureGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent) : GraphItem(graph, type, parent)
|
||||||
|
{
|
||||||
|
qreal sum = 0;
|
||||||
|
|
||||||
|
for (int j = 1; j < graph.size(); j++)
|
||||||
|
sum += graph.at(j).y() * (graph.at(j).s() - graph.at(j-1).s());
|
||||||
|
_avg = sum/graph.last().s();
|
||||||
|
|
||||||
|
setToolTip(toolTip(Metric));
|
||||||
|
}
|
||||||
|
|
||||||
|
QString TemperatureGraphItem::toolTip(Units units) const
|
||||||
|
{
|
||||||
|
ToolTip tt;
|
||||||
|
qreal scale = (units == Metric) ? 1.0 : C2FS;
|
||||||
|
qreal offset = (units == Metric) ? 0 : C2FO;
|
||||||
|
QString su = (units == Metric) ?
|
||||||
|
QChar(0x00B0) + tr("C") : QChar(0x00B0) + tr("F");
|
||||||
|
|
||||||
|
tt.insert(tr("Average"), QString::number(avg() * scale + offset, 'f', 1)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
tt.insert(tr("Maximum"), QString::number(max() * scale + offset, 'f', 1)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
tt.insert(tr("Minimum"), QString::number(min() * scale + offset, 'f', 1)
|
||||||
|
+ UNIT_SPACE + su);
|
||||||
|
|
||||||
|
return tt.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TemperatureGraphItem::setUnits(Units units)
|
||||||
|
{
|
||||||
|
setToolTip(toolTip(units));
|
||||||
|
}
|
26
src/temperaturegraphitem.h
Normal file
26
src/temperaturegraphitem.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef TEMPERATUREGRAPHITEM_H
|
||||||
|
#define TEMPERATUREGRAPHITEM_H
|
||||||
|
|
||||||
|
#include "graphitem.h"
|
||||||
|
|
||||||
|
class TemperatureGraphItem : public GraphItem
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
TemperatureGraphItem(const Graph &graph, GraphType type,
|
||||||
|
QGraphicsItem *parent = 0);
|
||||||
|
|
||||||
|
qreal max() const {return -bounds().top();}
|
||||||
|
qreal min() const {return -bounds().bottom();}
|
||||||
|
qreal avg() const {return _avg;}
|
||||||
|
|
||||||
|
void setUnits(Units units);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString toolTip(Units units) const;
|
||||||
|
|
||||||
|
qreal _avg;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // TEMPERATUREGRAPHITEM_H
|
@ -5,7 +5,7 @@
|
|||||||
#include "trackitem.h"
|
#include "trackitem.h"
|
||||||
|
|
||||||
|
|
||||||
QString TrackItem::toolTip(Units units)
|
QString TrackItem::toolTip(Units units) const
|
||||||
{
|
{
|
||||||
ToolTip tt;
|
ToolTip tt;
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public:
|
|||||||
void setUnits(Units units);
|
void setUnits(Units units);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString toolTip(Units units);
|
QString toolTip(Units units) const;
|
||||||
|
|
||||||
QString _name;
|
QString _name;
|
||||||
QString _desc;
|
QString _desc;
|
||||||
|
Reference in New Issue
Block a user