[qmapshack] 01/04: Imported Upstream version 1.2.0
Sebastiaan Couwenberg
sebastic at moszumanska.debian.org
Tue Apr 14 21:47:18 UTC 2015
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository qmapshack.
commit 34092be0ac5f7cde3e90dcce33772fa8811ba384
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Tue Apr 14 23:25:41 2015 +0200
Imported Upstream version 1.2.0
---
CMakeLists.txt | 2 +-
CMakeLists.txt.user | 14 +-
CMakeLists.txt.user.3.3-pre1 | 188 ------
changelog.txt | 11 +
nsi/3rdparty.txt | 87 ++-
src/CMainWindow.cpp | 9 +
src/CMakeLists.txt | 2 +
src/canvas/CCanvas.cpp | 32 +-
src/canvas/CCanvas.h | 10 +
src/canvas/CCanvasSetup.cpp | 19 +
src/canvas/ICanvasSetup.ui | 31 +-
src/canvas/IDrawContext.cpp | 93 ++-
src/canvas/IDrawContext.h | 15 +-
src/device/CDeviceGarmin.cpp | 5 +
src/device/CDeviceTwoNav.cpp | 6 +
src/device/IDevice.cpp | 42 ++
src/device/IDevice.h | 16 +
src/gis/CGisListWks.cpp | 73 ++-
src/gis/prj/CDetailsPrj.cpp | 4 +-
src/gis/prj/IGisProject.cpp | 18 +
src/gis/prj/IGisProject.h | 2 +
src/gis/tnv/serialization.cpp | 50 +-
src/gis/trk/CDetailsTrk.cpp | 29 +-
src/gis/trk/CDetailsTrk.h | 2 +
src/gis/trk/CGisItemTrk.cpp | 386 +++++++++---
src/gis/trk/CGisItemTrk.h | 39 +-
src/gis/trk/CScrOptTrk.cpp | 4 +-
src/gis/trk/IDetailsTrk.ui | 21 +
src/grid/CProjWizard.cpp | 4 +-
.../CFadingIcon.cpp} | 48 +-
src/{plot/CPlotSpeed.h => helpers/CFadingIcon.h} | 24 +-
src/helpers/CFileExt.h | 22 +-
src/icons/32x32/NoGo.png | Bin 0 -> 1401 bytes
src/icons/48x48/NoGo.png | Bin 0 -> 2231 bytes
src/icons/NoGo.svg | 69 +++
src/locale/qmapshack_cs.ts | 681 ++++++++++++---------
src/locale/qmapshack_de.ts | 625 +++++++++++--------
src/locale/qmapshack_es.ts | 615 +++++++++++--------
src/locale/qmapshack_fr.ts | 615 +++++++++++--------
src/main.cpp | 2 +-
src/map/CMapDraw.cpp | 10 +-
src/map/CMapDraw.h | 1 +
src/map/CMapIMG.cpp | 25 +-
src/map/CMapList.cpp | 43 +-
src/map/CMapList.h | 3 +
src/map/CMapPathSetup.cpp | 8 +
src/map/CMapPathSetup.h | 2 +-
src/map/CMapTMS.cpp | 7 +
src/map/CMapWMTS.cpp | 8 +
src/map/IMap.cpp | 4 +-
src/map/IMapList.ui | 10 +-
src/map/IMapPathSetup.ui | 10 +-
src/map/OSM_Topo.tms | 21 +
src/map/OpenCycleMap.tms | 9 +
src/map/OpenStreetMap.tms | 14 +
src/map/WorldSat.wmts | 377 ++++++++++++
src/map/WorldTopo.wmts | 377 ++++++++++++
src/map/garmin/IGarminStrTbl.cpp | 2 +-
src/mouse/CMouseEditTrk.cpp | 4 +-
src/mouse/CMouseNormal.cpp | 30 +-
src/mouse/CMouseNormal.h | 3 +
src/mouse/CMouseRangeTrk.cpp | 60 +-
src/mouse/CMouseRangeTrk.h | 2 +-
src/mouse/CScrOptRangeTrk.cpp | 1 +
src/mouse/IMouseEditLine.cpp | 32 +-
src/plot/CPlotDistance.cpp | 11 +-
src/plot/CPlotDistance.h | 2 +-
src/plot/CPlotProfile.cpp | 43 +-
src/plot/CPlotProfile.h | 2 +-
src/plot/CPlotSpeed.cpp | 9 +-
src/plot/CPlotSpeed.h | 2 +-
src/plot/IPlot.cpp | 358 ++++++++---
src/plot/IPlot.h | 26 +-
src/resources.qrc | 8 +
src/units/CUnitMetric.cpp | 8 +-
75 files changed, 3716 insertions(+), 1731 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f8c2ea..680c9f4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@ endif(WIN32)
set(APPLICATION_NAME qmapshack)
set(APPLICATION_VERSION_MAJOR "1")
-set(APPLICATION_VERSION_MINOR "1")
+set(APPLICATION_VERSION_MINOR "2")
set(APPLICATION_VERSION_PATCH "0")
add_definitions(-DVER_MAJOR=${APPLICATION_VERSION_MAJOR} -DVER_MINOR=${APPLICATION_VERSION_MINOR} -DVER_STEP=${APPLICATION_VERSION_PATCH} -DAPPLICATION_NAME=${PROJECT_NAME})
diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user
index 2e986f2..b4358f2 100644
--- a/CMakeLists.txt.user
+++ b/CMakeLists.txt.user
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 3.3.1, 2015-03-29T14:01:35. -->
+<!-- Written by QtCreator 3.3.1, 2015-04-13T09:23:04. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
- <value type="QByteArray">{044d553a-749a-4a4b-b707-1344605bd255}</value>
+ <value type="QByteArray">{2664d6c3-cac3-44ef-bde0-590e210eae25}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -58,9 +58,9 @@
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.4 in Pfad (System)</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 4.8.4 in Pfad (System)</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b3896d75-6773-49ab-b85b-a90805c4269a}</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{021ef025-5564-47de-9a05-7e6d336dd5ab}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
@@ -157,9 +157,9 @@
<value type="int">14</value>
</valuelist>
<value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmapshack</value>
- <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments">-d </value>
+ <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments">-d</value>
<value type="bool" key="CMakeProjectManager.CMakeRunConfiguration.UseTerminal">false</value>
- <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
+ <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory">/home/oeichler/Code/cpp/build_QMapShack/</value>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmapshack</value>
diff --git a/CMakeLists.txt.user.3.3-pre1 b/CMakeLists.txt.user.3.3-pre1
deleted file mode 100644
index 2d183c2..0000000
--- a/CMakeLists.txt.user.3.3-pre1
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 3.2.2, 2015-03-13T18:02:53. -->
-<qtcreator>
- <data>
- <variable>EnvironmentId</variable>
- <value type="QByteArray">{044d553a-749a-4a4b-b707-1344605bd255}</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.ActiveTarget</variable>
- <value type="int">0</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.EditorSettings</variable>
- <valuemap type="QVariantMap">
- <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
- <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
- <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
- <value type="QString" key="language">Cpp</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
- </valuemap>
- </valuemap>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
- <value type="QString" key="language">QmlJS</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
- </valuemap>
- </valuemap>
- <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
- <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
- <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
- <value type="int" key="EditorConfiguration.IndentSize">4</value>
- <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
- <value type="int" key="EditorConfiguration.MarginColumn">80</value>
- <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
- <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
- <value type="int" key="EditorConfiguration.PaddingMode">1</value>
- <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
- <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
- <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
- <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
- <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
- <value type="int" key="EditorConfiguration.TabSize">8</value>
- <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
- <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
- <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
- <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
- <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
- <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
- </valuemap>
- </data>
- <data>
- <variable>ProjectExplorer.Project.PluginSettings</variable>
- <valuemap type="QVariantMap"/>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Target.0</variable>
- <valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.4 in Pfad (System)</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 4.8.4 in Pfad (System)</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{b3896d75-6773-49ab-b85b-a90805c4269a}</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>
- <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/oeichler/Code/cpp/build_QMapShack</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">-j8</value>
- <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
- <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value>
- <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">clean</value>
- <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
- <value type="bool" key="CMakeProjectManager.MakeStep.Clean">true</value>
- <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">all</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Lokales Deployment</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
- <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
- <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmapshack</value>
- <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"></value>
- <value type="bool" key="CMakeProjectManager.CMakeRunConfiguration.UseTerminal">false</value>
- <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
- <value type="int" key="PE.EnvironmentAspect.Base">2</value>
- <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmapshack</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.qmapshack</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
- <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
- </valuemap>
- </data>
- <data>
- <variable>ProjectExplorer.Project.TargetCount</variable>
- <value type="int">1</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">16</value>
- </data>
- <data>
- <variable>Version</variable>
- <value type="int">16</value>
- </data>
-</qtcreator>
diff --git a/changelog.txt b/changelog.txt
index f750fa1..c61cd89 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,14 @@
+V 1.2.0
+* TwoNav: prepend HTML file for waypoint comment with QMS_CMT
+* Devices: Warn if there is a file/path with the same name, but different key
+* TwoNav: Link comment file to roadbook waypoints.
+* Track: Enhance range selection
+* Track: Add range selection to plots
+* Canvas: Add option to choose between logarithmic and square scale.
+* Add button to add a selection online maps
+* Fix: Some waypoints do not snap on track
+* [Issue #14] Issue a warning when closing an unsaved project
+
V 1.1.0
* Garmin Mpas: fix line breaks of tooltips
* Project summary: Add roadbook mode
diff --git a/nsi/3rdparty.txt b/nsi/3rdparty.txt
index 2b0f0df..01148c0 100644
--- a/nsi/3rdparty.txt
+++ b/nsi/3rdparty.txt
@@ -1,17 +1,26 @@
-QMapShack for Windows (short: QMS) is build with Visual Studio 2013 as 64bit application
-It depends on the 3rd party software listed below
+#############################################################
+# QMapShack for Windows (short: QMS) #
+#############################################################
+QMS is build with Visual Studio 2013 as 64bit application.
+
+It can be build with Visual Studio 2013 Community-Edition, too.
+
+Required Dependencies
+=====================
+QMS depends on the 3rd party software listed below:
1.) Microsoft Visual C++ 2013 Redistributable Package
The installer vcredist_x64.exe (ca 7MB size) as downloaded from
http://www.microsoft.com/en-us/download/details.aspx?id=40784
- is contained in the QLGT Installer package and may be executed if selected by the user.
- Note: Those runtime libraries may already be contained in Windows 7 or WIndows 8 installations.
+ is already contained in the QMS Installer package and will be executed if selected by the user.
+
+ Note: Those runtime libraries may already be contained in Windows 7 or Windows 8 installations.
2.) Qt5 runtime libraries
- The Qt DLL's are deployed in the QLGT installation directory.
- They are part of the "Qt libraries for Windows (VS 2008)" package.
- This can be retrieved from http://qt.nokia.com/downloads/windows-cpp-vs2008.
-
+ The Qt DLL's are deployed in the QMS installation directory.
+ They are part of Qt which you can download here:
+ http://qt-project.org/downloads
+
3.) The GDAL library, http://www.gdal.org/
4.) The PROJ library http://trac.osgeo.org/proj/
@@ -23,38 +32,50 @@ It depends on the 3rd party software listed below
Additional tools for building and installing
============================================
-- CMake 2.8, available at http://www.cmake.org/
+- CMake 3.0 or later, available at http://www.cmake.org/
- NSIS, available at http://nsis.sourceforge.net/Main_Page
Compile instructions - to be verified
-====================
+=====================================
1.) Compile the GDAL library, http://www.gdal.org/
-[Build instructions inspired by http://trac.osgeo.org/gdal/wiki/BuildingOnWindows, http://dominoc925.blogspot.de/2013/03/build-64-bit-gdal-for-windows.html]
+
+[Build instructions inspired by http://trac.osgeo.org/gdal/wiki/BuildingOnWindows, http://dominoc925.blogspot.de/2013/03/build-64-bit-gdal-for-windows.html,]
+
- Download the source code of the version 1.11 (or latest) from http://trac.osgeo.org/gdal/wiki/DownloadSource and unzip
- In nmake.opt, adapt the following lines, according to your build environment [my settings are given as example]
MSVC_VER=1800
- GDAL_HOME = "M:\lib\gdal"
+ GDAL_HOME = "M:\lib\gdal"
PYDIR = "C:\Python34"
- SWIG = D:\gdal111\swig.exe
+ SWIG = D:\gdal111\swig.exe # NOTE: swig.exe is part of precompiled binaries for Windows supplied by http://www.gisinternals.com/
WIN64=YES
-- From the start menu, enter the VS2013, x64 native command prompt
-- nmake /f makefile.vc
-- nmake /f makefile.vc devinstall
-
+
+- On the Windows Desktop:
+ => select Start | All Programs | Microsoft Visual Studio 2013 | Visual Studio Tools | VS 2013 x64 Native Tools Command Prompt.
+- in the command prompt:
+ => change directory to the extracted GDAL source code root folder
+ => nmake /f makefile.vc
+ => nmake /f makefile.vc devinstall
+
2.) Compile the PROJ library http://trac.osgeo.org/proj/
-- Download the source code of the version 4.8 (or latest) from http://trac.osgeo.org/proj/ and unzip
+
+- Download the source code of the version 4.8 (or latest) from http://trac.osgeo.org/proj/ and unzip it
- In nmake.opt, adapt the following lines, according to your build environment [my settings are given as example]
INSTDIR=M:\lib\PROJ
-- From the start menu, enter the VS2013, x64 native command prompt
-- nmake /f makefile.vc
-- nmake /f makefile.vc install-all
-
-3.) Install QT5.3 or later
+- On the Windows Desktop:
+ => select Start | All Programs | Microsoft Visual Studio 2013 | Visual Studio Tools | VS 2013 x64 Native Tools Command Prompt.
+- in the command prompt:
+ => change directory to the extracted PROJ4 source code root folder
+ => nmake /f makefile.vc
+ => nmake /f makefile.vc install-all
+
+3.) Install QT5.4 or later
- Download and run the Qt5 Windows Online Installer from http://qt-project.org/downloads
Install for VS2013, x64
-
+
+ Note: if you prefer offline installation you can choose the right package in OFFLINE INSTALLERS section of that page
+
4.) Get the QMapshack source from the repository, e.g.
hg clone https://bitbucket.org/maproom/qmapshack QMapShack
Note: you might have to install TortoiseHG
@@ -63,7 +84,8 @@ Note: you might have to install TortoiseHG
- Configure
In the first run there will be errors.
Now enter the directories where you have installed Qt5, GDAL and PROJ.4 to the respective variables.
- After that, Configure again.
+ After that, Configure again.
+Note: in case that you only get some warnings, you anyway can try to GENERATE
- Generate
6.) Open the generated QMapShack.sln with VS2013
@@ -71,14 +93,11 @@ Note: you might have to install TortoiseHG
7.) Download the VC redistributable installer
from http://www.microsoft.com/en-us/download/details.aspx?id=40784
+Note: in case the restributable files are already installed in your system, this step is not necessary.
-8.) Create the installer by executing
-- nsi/copyfiles.bat
- Note: In copyfiles.bat, you may have to adapt the directories where you have installed Qt5, GDAL and PROJ.4.
-- nsi/QMapShack_Installer.nsi
+8.) Create the installer with NSIS(3.0b1)
+- Execute the copyfiles.bat which you can find in \nsi directory of your QMS source directory
+ Note: In copyfiles.bat, you may have to adapt the directories where you have installed Qt5, GDAL and PROJ4.
-
-
-
-
-
+- Run the QMapShack_Installer.nsi script e.g via right click on script file and choosing "Compile NSIS Script" from contextual menu.
+ Note: there also are the options to run the script on command prompt with commandline version(makensis.exe). Or you can start windows version (makensisw.exe) to run the script.
diff --git a/src/CMainWindow.cpp b/src/CMainWindow.cpp
index 7367953..9e1a7d2 100644
--- a/src/CMainWindow.cpp
+++ b/src/CMainWindow.cpp
@@ -190,6 +190,7 @@ CMainWindow::~CMainWindow()
*/
cfg.beginGroup("Canvas");
QList<CCanvas*> allViews;
+ QList<QWidget*> allOtherTabs;
// save setup of all views
cfg.beginGroup("Views");
@@ -201,6 +202,7 @@ CMainWindow::~CMainWindow()
CCanvas * view = dynamic_cast<CCanvas*>(tabWidget->widget(i));
if(view == 0)
{
+ allOtherTabs << tabWidget->widget(i);
continue;
}
cnt++;
@@ -226,6 +228,13 @@ CMainWindow::~CMainWindow()
CDemDraw::saveDemPath(cfg);
cfg.endGroup(); // Canvas
+
+ /*
+ Delete all widgets in the tab widget other than views. The IPlot objects
+ in a track detail dialog send update events to the view on destruction.
+ So it is important that these are destroyed first.
+ */
+ qDeleteAll(allOtherTabs);
/*
Delete all canvas objects now to make sure they are destroyed before all
other objects. This allows children of the canvas to access central objects
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 385a273..85b8348 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -36,6 +36,7 @@ set( SRCS
helpers/CLinksDialog.cpp
helpers/CPhotoAlbum.cpp
helpers/CPhotoViewer.cpp
+ helpers/CFadingIcon.cpp
canvas/CCanvas.cpp
canvas/CCanvasSetup.cpp
canvas/IDrawContext.cpp
@@ -213,6 +214,7 @@ set( HDRS
helpers/CLinksDialog.h
helpers/CPhotoAlbum.h
helpers/CPhotoViewer.h
+ helpers/CFadingIcon.h
canvas/CCanvas.h
canvas/CCanvasSetup.h
canvas/IDrawContext.h
diff --git a/src/canvas/CCanvas.cpp b/src/canvas/CCanvas.cpp
index 835f91c..bad3d76 100644
--- a/src/canvas/CCanvas.cpp
+++ b/src/canvas/CCanvas.cpp
@@ -121,6 +121,12 @@ CCanvas::CCanvas(QWidget *parent, const QString &name)
CCanvas::~CCanvas()
{
+ /*
+ Some mouse objects call methods from their canvas on destruction.
+ So they are better deleted now explicitely befor any other object
+ in CCanvas is destroyed.
+ */
+ delete mouse;
saveSizeTrackProfile();
}
@@ -131,12 +137,14 @@ void CCanvas::saveConfig(QSettings& cfg)
grid->saveConfig(cfg);
cfg.setValue("posFocus", posFocus);
cfg.setValue("proj", map->getProjection());
+ cfg.setValue("scales", map->getScalesType());
}
void CCanvas::loadConfig(QSettings& cfg)
{
posFocus = cfg.value("posFocus", posFocus).toPointF();
setProjection(cfg.value("proj", map->getProjection()).toString());
+ setScales((CCanvas::scales_type_e)cfg.value("scales", map->getScalesType()).toInt());
map->loadConfig(cfg);
dem->loadConfig(cfg);
@@ -318,8 +326,12 @@ void CCanvas::paintEvent(QPaintEvent * e)
// ----- start to draw fast content -----
grid->draw(p, rect());
+ if(map->isFinished() && dem->isFinished() && gis->isFinished())
+ {
+ gis->draw(p, rect());
+ }
mouse->draw(p, needsRedraw, rect());
- gis->draw(p, rect());
+
drawStatusMessages(p);
drawScale(p);
@@ -684,6 +696,18 @@ void CCanvas::setProjection(const QString& proj)
dem->setProjection(proj);
gis->setProjection(proj);
}
+void CCanvas::setScales(const scales_type_e type)
+{
+ map->setScales(type);
+ dem->setScales(type);
+ gis->setScales(type);
+}
+
+CCanvas::scales_type_e CCanvas::getScalesType()
+{
+ return map->getScalesType();
+}
+
qreal CCanvas::getElevationAt(const QPointF& pos)
{
@@ -717,14 +741,14 @@ void CCanvas::saveSizeTrackProfile()
if(plotTrackProfile->windowFlags() & Qt::Window)
{
SETTINGS;
- cfg.beginGroup("Canvas");
+ cfg.beginGroup("Canvas");
cfg.beginGroup("Profile");
cfg.beginGroup(objectName());
cfg.setValue("geometry", plotTrackProfile->saveGeometry());
cfg.endGroup(); // objectName()
- cfg.endGroup(); // Profile
+ cfg.endGroup(); // Profile
cfg.endGroup(); // Canvas
}
}
@@ -754,7 +778,7 @@ void CCanvas::setSizeTrackProfile()
}
cfg.endGroup(); // objectName()
- cfg.endGroup(); // Profile
+ cfg.endGroup(); // Profile
cfg.endGroup(); // Canvas
}
else
diff --git a/src/canvas/CCanvas.h b/src/canvas/CCanvas.h
index 68a363b..e35198e 100644
--- a/src/canvas/CCanvas.h
+++ b/src/canvas/CCanvas.h
@@ -73,6 +73,16 @@ public:
void setup();
QString getProjection();
void setProjection(const QString& proj);
+
+ enum scales_type_e
+ {
+ eScalesDefault
+ , eScalesSquare
+ };
+
+ void setScales(const scales_type_e type);
+ scales_type_e getScalesType();
+
qreal getElevationAt(const QPointF &pos);
void getElevationAt(const QPolygonF& pos, QPolygonF &ele);
diff --git a/src/canvas/CCanvasSetup.cpp b/src/canvas/CCanvasSetup.cpp
index 8153d53..d96cfda 100644
--- a/src/canvas/CCanvasSetup.cpp
+++ b/src/canvas/CCanvasSetup.cpp
@@ -29,6 +29,17 @@ CCanvasSetup::CCanvasSetup(CCanvas * canvas)
lineProjection->setText(canvas->getProjection());
lineProjection->setCursorPosition(0);
+ switch(canvas->getScalesType())
+ {
+ case CCanvas::eScalesDefault:
+ radioScalesDefault->setChecked(true);
+ break;
+
+ case CCanvas::eScalesSquare:
+ radioScalesSquare->setChecked(true);
+ break;
+ }
+
connect(toolWizard, SIGNAL(clicked()), this, SLOT(slotProjWizard()));
}
@@ -50,6 +61,14 @@ void CCanvasSetup::accept()
return;
}
canvas->setProjection(lineProjection->text());
+ if(radioScalesDefault->isChecked())
+ {
+ canvas->setScales(CCanvas::eScalesDefault);
+ }
+ else if(radioScalesSquare->isChecked())
+ {
+ canvas->setScales(CCanvas::eScalesSquare);
+ }
canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
QDialog::accept();
}
diff --git a/src/canvas/ICanvasSetup.ui b/src/canvas/ICanvasSetup.ui
index 9d3f1f6..9a2697b 100644
--- a/src/canvas/ICanvasSetup.ui
+++ b/src/canvas/ICanvasSetup.ui
@@ -7,13 +7,13 @@
<x>0</x>
<y>0</y>
<width>446</width>
- <height>98</height>
+ <height>179</height>
</rect>
</property>
<property name="windowTitle">
<string>Setup Map View...</string>
</property>
- <layout class="QVBoxLayout" name="verticalLayout">
+ <layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
@@ -46,6 +46,33 @@
</layout>
</item>
<item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Scales</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QRadioButton" name="radioScalesDefault">
+ <property name="text">
+ <string>Logarithmic</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="radioScalesSquare">
+ <property name="text">
+ <string>Square (optimized for TMS and WTMS tiles)</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
diff --git a/src/canvas/IDrawContext.cpp b/src/canvas/IDrawContext.cpp
index 0a1c03a..d6a8034 100644
--- a/src/canvas/IDrawContext.cpp
+++ b/src/canvas/IDrawContext.cpp
@@ -21,34 +21,12 @@
#include <QtWidgets>
-//#define N_ZOOM_LEVELS 20
-//const qreal CMapDraw::scales[N_ZOOM_LEVELS] =
-//{
-// 0.10
-// ,0.20
-// ,0.40
-// ,0.80
-// ,1.60
-// ,3.20
-// ,6.40
-// ,12.8
-// ,25.6
-// ,51.2
-// ,102.4
-// ,204.8
-// ,409.6
-// ,819.2
-// ,1638.4
-// ,3276.8
-// ,6553.6
-// ,13107.2
-// ,26214.4
-// ,52428.8
-//};
#define BUFFER_BORDER 50
-#define N_ZOOM_LEVELS 31
-const qreal IDrawContext::scales[N_ZOOM_LEVELS] =
+
+
+#define N_DEFAULT_ZOOM_LEVELS 31
+const qreal IDrawContext::scalesDefault[N_DEFAULT_ZOOM_LEVELS] =
{
0.10
, 0.15
@@ -88,6 +66,28 @@ const qreal IDrawContext::scales[N_ZOOM_LEVELS] =
// , 70000.0
};
+#define N_SQUARE_ZOOM_LEVELS 17
+const qreal IDrawContext::scalesSquare[N_SQUARE_ZOOM_LEVELS] =
+{
+ 0.1492910709
+ , 0.2985821417
+ , 0.5971642834
+ , 1.1943285668
+ , 2.3886571336
+ , 4.7773142672
+ , 9.5546285344
+ , 19.1092570688
+ , 38.2185141376
+ , 76.4370282752
+ , 152.8740565504
+ , 305.7481131008
+ , 611.4962262016
+ , 1222.9924524032
+ , 2445.9849048064
+ , 4891.9698096128
+ , 9783.9396192256
+};
+
QPointF operator*(const QPointF& p1, const QPointF& p2)
{
return QPointF(p1.x() * p2.x(), p1.y() * p2.y());
@@ -117,6 +117,7 @@ IDrawContext::IDrawContext(const QString& name, CCanvas::redraw_e maskRedraw, CC
pjsrc = pj_init_plus("+proj=merc +a=6378137.0000 +b=6356752.3142 +towgs84=0,0,0,0,0,0,0,0 +units=m +no_defs");
pjtar = pj_init_plus("+proj=longlat +a=6378137.0000 +b=6356752.3142 +towgs84=0,0,0,0,0,0,0,0 +units=m +no_defs");
+ setScales(CCanvas::eScalesDefault);
zoom(5);
@@ -175,6 +176,40 @@ void IDrawContext::setProjection(const QString& proj)
pjsrc = pj_init_plus(proj.toLatin1());
}
+CCanvas::scales_type_e IDrawContext::getScalesType()
+{
+ return scalesType;
+}
+
+void IDrawContext::setScales(const CCanvas::scales_type_e type)
+{
+ int i;
+
+ switch (type)
+ {
+ case CCanvas::eScalesDefault:
+ for (i=0; i < N_DEFAULT_ZOOM_LEVELS; i++)
+ {
+ scales[i] = scalesDefault[i];
+ }
+ zoomLevels = N_DEFAULT_ZOOM_LEVELS;
+ scalesType = type;
+ break;
+
+ case CCanvas::eScalesSquare:
+ for (i=0; i < N_SQUARE_ZOOM_LEVELS; i++)
+ {
+ scales[i] = scalesSquare[i];
+ }
+ zoomLevels = N_SQUARE_ZOOM_LEVELS;
+ scalesType = type;
+ break;
+
+ default:
+ qDebug() << "Invalid type of scales table" << scalesType;
+ }
+}
+
bool IDrawContext::needsRedraw()
{
bool res = false;
@@ -199,7 +234,7 @@ void IDrawContext::zoom(const QRectF& rect)
}
// zoom out from closest zoom level until a match is found
- for(int i = 0; i < N_ZOOM_LEVELS; i++)
+ for(int i = 0; i < zoomLevels; i++)
{
zoom(i);
QPointF pt1 = rect.topLeft();
@@ -233,9 +268,9 @@ void IDrawContext::zoom(int idx)
idx = 0;
}
- if(idx == N_ZOOM_LEVELS)
+ if(idx >= zoomLevels)
{
- idx = N_ZOOM_LEVELS -1;
+ idx = zoomLevels -1;
}
mutex.lock(); // --------- start serialize with thread
diff --git a/src/canvas/IDrawContext.h b/src/canvas/IDrawContext.h
index 4ead935..5a122b2 100644
--- a/src/canvas/IDrawContext.h
+++ b/src/canvas/IDrawContext.h
@@ -29,6 +29,8 @@
#include "canvas/CCanvas.h"
+#define CANVAS_MAX_ZOOM_LEVELS 31
+
class IDrawContext : public QThread
{
Q_OBJECT
@@ -50,6 +52,8 @@ public:
projPJ pjsrc;
/// the zoomfactor used to draw the canvas
QPointF zoomFactor;
+ /// the number of zoom levels
+ int zoomLevels;
/// the scale of the global viewport
QPointF scale;
/// top left corner
@@ -125,6 +129,7 @@ public:
@return A proj4 string.
*/
QString getProjection();
+ CCanvas::scales_type_e getScalesType();
/**
@brief Set the projection of the draw context
@@ -140,6 +145,8 @@ public:
*/
virtual void setProjection(const QString& proj);
+ virtual void setScales(const CCanvas::scales_type_e type);
+
signals:
void sigCanvasUpdate(CCanvas::redraw_e flags);
void sigStartThread();
@@ -163,7 +170,8 @@ protected:
/**
@brief The global list of available scale factors
*/
- static const qreal scales[];
+ static const qreal scalesDefault[];
+ static const qreal scalesSquare[];
/// the mutex to serialize access
QMutex mutex;
@@ -194,6 +202,11 @@ protected:
projPJ pjsrc;
/// target projection is always WGS84
projPJ pjtar;
+ /// the used scales and the type of scale levels
+ qreal scales[CANVAS_MAX_ZOOM_LEVELS];
+ CCanvas::scales_type_e scalesType;
+ /// the number of zoom levels
+ int zoomLevels;
/// the basic scale of the map canvas
QPointF scale;
diff --git a/src/device/CDeviceGarmin.cpp b/src/device/CDeviceGarmin.cpp
index 8e4832c..937c07d 100644
--- a/src/device/CDeviceGarmin.cpp
+++ b/src/device/CDeviceGarmin.cpp
@@ -140,6 +140,11 @@ void CDeviceGarmin::insertCopyOfProject(IGisProject * project)
QDir dirGpx = dir.absoluteFilePath(pathGpx);
QString filename = dirGpx.absoluteFilePath(name + ".gpx");
+ if(testForExternalProject(filename))
+ {
+ return;
+ }
+
CGpxProject * gpx = new CGpxProject(filename, project, this);
if(!gpx->isValid())
{
diff --git a/src/device/CDeviceTwoNav.cpp b/src/device/CDeviceTwoNav.cpp
index e865188..f810b3e 100644
--- a/src/device/CDeviceTwoNav.cpp
+++ b/src/device/CDeviceTwoNav.cpp
@@ -119,6 +119,12 @@ void CDeviceTwoNav::insertCopyOfProject(IGisProject * project)
QDir dirData = dir.absoluteFilePath(pathData);
QString filename = dirData.absoluteFilePath(name);
+ if(testForExternalProject(filename))
+ {
+ return;
+ }
+
+
CTwoNavProject * proj = new CTwoNavProject(filename, project, this);
if(!proj->isValid())
{
diff --git a/src/device/IDevice.cpp b/src/device/IDevice.cpp
index b4218ed..b5f9615 100644
--- a/src/device/IDevice.cpp
+++ b/src/device/IDevice.cpp
@@ -25,16 +25,20 @@
#include <QtDBus>
#endif
+int IDevice::cnt = 0;
+
IDevice::IDevice(const QString &path, const QString &key, QTreeWidget *parent)
: QTreeWidgetItem(parent)
, dir(path)
, key(key)
{
setIcon(CGisListWks::eColumnIcon, QIcon("://icons/32x32/Device.png"));
+ cnt++;
}
IDevice::~IDevice()
{
+ cnt--;
}
void IDevice::mount(const QString& path)
@@ -191,6 +195,44 @@ void IDevice::updateProject(IGisProject * project)
insertCopyOfProject(project);
}
+bool IDevice::testForExternalProject(const QString& filename)
+{
+ if(QDir(filename).exists() || QFile::exists(filename))
+ {
+ QString msg = QObject::tr("There is another project with the same name. If you press 'ok' it will be removed and replaced.");
+ int res = QMessageBox::warning(&CMainWindow::self(), getName(), msg, QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+ if(res != QMessageBox::Ok)
+ {
+ return true;
+ }
+
+ if(QDir(filename).exists())
+ {
+ QDir(filename).removeRecursively();
+ }
+ else if(QFile::exists(filename))
+ {
+ QFile(filename).remove();
+ }
+
+ QFileInfo fi(filename);
+
+ const int N = childCount();
+ for(int n = 0; n < N; n++)
+ {
+ QTreeWidgetItem * item = child(n);
+ if(item->text(CGisListWks::eColumnName) == fi.fileName())
+ {
+ delete item;
+ break;
+ }
+ }
+ }
+
+
+ return false;
+}
+
void IDevice::drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
{
const int N = childCount();
diff --git a/src/device/IDevice.h b/src/device/IDevice.h
index c95a7ca..f490673 100644
--- a/src/device/IDevice.h
+++ b/src/device/IDevice.h
@@ -34,6 +34,10 @@ public:
static void mount(const QString& path);
static void umount(const QString &path);
+ static int count()
+ {
+ return cnt;
+ }
void mount()
{
@@ -79,6 +83,18 @@ public:
protected:
virtual void insertCopyOfProject(IGisProject * project) = 0;
+ /**
+ @brief Test if a project's filename/path is already used
+
+ This can happen if there is already a project with the same name
+ but different or no key.
+
+ @param filename
+ @return If the current operation should be aborted return true.
+ */
+ bool testForExternalProject(const QString& filename);
+
+ static int cnt;
QDir dir;
QString key;
diff --git a/src/gis/CGisListWks.cpp b/src/gis/CGisListWks.cpp
index b88069b..a88374b 100644
--- a/src/gis/CGisListWks.cpp
+++ b/src/gis/CGisListWks.cpp
@@ -99,7 +99,7 @@ CGisListWks::CGisListWks(QWidget *parent)
menuProjectDev->addAction(actionEditPrj);
menuProjectDev->addAction(actionSaveAs);
menuProjectDev->addAction(actionSave);
- actionSyncWksDev= menuProjectDev->addAction(QIcon("://icons/32x32/Device.png"),tr("Update Project on Device"), this, SLOT(slotSyncDevWks()));
+ actionSyncDevWks= menuProjectDev->addAction(QIcon("://icons/32x32/Device.png"),tr("Update Project on Device"), this, SLOT(slotSyncDevWks()));
actionDelProj = menuProjectDev->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"), this, SLOT(slotDeleteProject()));
menuProjectTrash= new QMenu(this);
@@ -811,6 +811,7 @@ void CGisListWks::slotContextMenu(const QPoint& point)
}
else
{
+ actionSyncWksDev->setEnabled(IDevice::count());
menuProjectWks->exec(p);
}
return;
@@ -842,6 +843,7 @@ void CGisListWks::slotContextMenu(const QPoint& point)
}
else
{
+ actionSyncWksDev->setEnabled(IDevice::count());
menuProjectWks->exec(p);
}
}
@@ -892,12 +894,44 @@ void CGisListWks::slotCloseProject()
IGisProject * project = dynamic_cast<IGisProject*>(item);
if(project != 0)
{
+ if(project->askBeforClose())
+ {
+ break;
+ }
+ delete project;
+ }
+ }
+ emit sigChanged();
+}
+
+void CGisListWks::slotCloseAllProjects()
+{
+ int res = QMessageBox::question(this, tr("Close all projects..."), tr("This will remove all projects from the workspace."), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+ if(res != QMessageBox::Ok)
+ {
+ return;
+ }
+
+
+ CGisListWksEditLock lock(true, IGisItem::mutexItems);
+ QList<QTreeWidgetItem*> items = findItems("*", Qt::MatchWildcard);
+ foreach(QTreeWidgetItem * item, items)
+ {
+ IGisProject * project = dynamic_cast<IGisProject*>(item);
+ if(project != 0)
+ {
+ if(project->askBeforClose())
+ {
+ break;
+ }
delete project;
}
}
emit sigChanged();
}
+
+
void CGisListWks::slotDeleteProject()
{
CGisListWksEditLock lock(true, IGisItem::mutexItems);
@@ -1171,27 +1205,6 @@ void CGisListWks::slotAddEmptyProject()
}
}
-void CGisListWks::slotCloseAllProjects()
-{
- int res = QMessageBox::question(this, tr("Close all projects..."), tr("This will remove all projects from the workspace."), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
- if(res != QMessageBox::Ok)
- {
- return;
- }
-
-
- CGisListWksEditLock lock(true, IGisItem::mutexItems);
- QList<QTreeWidgetItem*> items = findItems("*", Qt::MatchWildcard);
- foreach(QTreeWidgetItem * item, items)
- {
- IGisProject * project = dynamic_cast<IGisProject*>(item);
- if(project != 0)
- {
- delete project;
- }
- }
- emit sigChanged();
-}
void CGisListWks::slotSearchGoogle(bool on)
{
@@ -1215,20 +1228,23 @@ void CGisListWks::slotSyncWksDev()
}
QSet<QString> keys;
- CSelDevices dlg(project, this);
- if(dlg.exec() != QDialog::Accepted)
+ if(IDevice::count() > 1)
{
- return;
+ CSelDevices dlg(project, this);
+ if(dlg.exec() != QDialog::Accepted)
+ {
+ return;
+ }
+ dlg.getSlectedDevices(keys);
}
- dlg.getSlectedDevices(keys);
-
+ QApplication::setOverrideCursor(Qt::WaitCursor);
CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
const int N = topLevelItemCount();
for(int n = 0; n < N; n++)
{
IDevice * device = dynamic_cast<IDevice*>(topLevelItem(n));
- if(device == 0 || !keys.contains(device->getKey()))
+ if(device == 0 || (!keys.isEmpty() && !keys.contains(device->getKey())))
{
continue;
}
@@ -1246,6 +1262,7 @@ void CGisListWks::slotSyncWksDev()
canvas->reportStatus("device", "");
}
emit sigChanged();
+ QApplication::restoreOverrideCursor();
}
void CGisListWks::slotSyncDevWks()
diff --git a/src/gis/prj/CDetailsPrj.cpp b/src/gis/prj/CDetailsPrj.cpp
index d56e8d9..3e46fde 100644
--- a/src/gis/prj/CDetailsPrj.cpp
+++ b/src/gis/prj/CDetailsPrj.cpp
@@ -133,7 +133,7 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
int cnt, w = doc.textWidth();
int nItems = 0;
- QFontMetrics fm(QFont(font().family(),10));
+ QFontMetrics fm(QFont(font().family(),12));
int pointSize = ((10 * (w - 2 * ROOT_FRAME_MARGIN)) / (CHAR_PER_LINE * fm.width("X")));
if(pointSize == 0)
{
@@ -679,7 +679,7 @@ void CDetailsPrj::slotPrint()
{
QPrinter printer;
- printer.setResolution(150);
+ printer.setResolution(200);
printer.setPageSize(QPrinter::A4);
QPrintDialog dialog(&printer, this);
dialog.setWindowTitle(tr("Print Diary"));
diff --git a/src/gis/prj/IGisProject.cpp b/src/gis/prj/IGisProject.cpp
index cae2d75..4cf94c6 100644
--- a/src/gis/prj/IGisProject.cpp
+++ b/src/gis/prj/IGisProject.cpp
@@ -58,6 +58,22 @@ IGisProject::~IGisProject()
}
+bool IGisProject::askBeforClose()
+{
+ int res = QMessageBox::Ok;
+ if(isChanged())
+ {
+ res = QMessageBox::question(&CMainWindow::self(), QObject::tr("Save project?"), QObject::tr("The project \"%1\" was changed. Save befor closing it?").arg(getName()), QMessageBox::Save|QMessageBox::No|QMessageBox::Abort, QMessageBox::Save);
+ if(res == QMessageBox::Save)
+ {
+ save();
+ }
+ }
+
+ return res == QMessageBox::Abort;
+}
+
+
bool IGisProject::isVisible() const
{
return checkState(CGisListWks::eColumnDecoration) == Qt::Checked;
@@ -590,3 +606,5 @@ bool IGisProject::remove()
umount();
return true;
}
+
+
diff --git a/src/gis/prj/IGisProject.h b/src/gis/prj/IGisProject.h
index 4c22282..e35608d 100644
--- a/src/gis/prj/IGisProject.h
+++ b/src/gis/prj/IGisProject.h
@@ -87,6 +87,8 @@ public:
IGisProject(type_e type, const QString &filename, IDevice *parent);
virtual ~IGisProject();
+ bool askBeforClose();
+
IGisProject& operator=(const IGisProject& p)
{
key = p.key;
diff --git a/src/gis/tnv/serialization.cpp b/src/gis/tnv/serialization.cpp
index c140fa5..f84fa4a 100644
--- a/src/gis/tnv/serialization.cpp
+++ b/src/gis/tnv/serialization.cpp
@@ -398,6 +398,21 @@ bool CGisItemTrk::saveTwoNav(const QString &filename)
list << "0";
out << "a " << list.join(",") << endl;
}
+
+ QString comment = wpt->getComment();
+ if(!IGisItem::removeHtml(comment).isEmpty())
+ {
+ QString filenameCmt = QString("QMS_CMT%1.html").arg(wpt->getKey().item);
+ QFile fileCmt(dir.absoluteFilePath(filenameCmt));
+ fileCmt.open(QIODevice::WriteOnly);
+
+ QTextStream stream(&fileCmt);
+ stream << bom << comment;
+
+ fileCmt.close();
+
+ out << "a .\\" << filenameCmt << ",0" << endl;
+ }
}
}
}
@@ -527,20 +542,6 @@ void CGisItemWpt::saveTwoNav(QTextStream& out, const QDir& dir)
QString description = getDescription();
description = removeHtml(description);
- QString filenameCmt;
- QString comment = getComment();
- if(!comment.isEmpty())
- {
- filenameCmt = QString("%1.html").arg(getKey().item);
- QFile fileCmt(dir.absoluteFilePath(filenameCmt));
- fileCmt.open(QIODevice::WriteOnly);
-
- QTextStream stream(&fileCmt);
- stream << bom << comment;
-
- fileCmt.close();
- }
-
QStringList list;
list << "W";
list << name;
@@ -569,11 +570,24 @@ void CGisItemWpt::saveTwoNav(QTextStream& out, const QDir& dir)
out << list.join(",");
out << endl;
- if(!filenameCmt.isEmpty())
+
+
+ QString comment = getComment();
+ if(!IGisItem::removeHtml(comment).isEmpty())
{
- out << "a " << ".\\" << filenameCmt << endl;
+ QString filenameCmt = QString("QMS_CMT%1.html").arg(getKey().item);
+ QFile fileCmt(dir.absoluteFilePath(filenameCmt));
+ fileCmt.open(QIODevice::WriteOnly);
+
+ QTextStream stream(&fileCmt);
+ stream << bom << comment;
+
+ fileCmt.close();
+
+ out << "a .\\" << filenameCmt << ",0" << endl;
}
+
foreach(const image_t &img, images)
{
QString fn = img.info;
@@ -591,7 +605,7 @@ void CGisItemWpt::saveTwoNav(QTextStream& out, const QDir& dir)
fn = makeUniqueName(fn, dir);
img.pixmap.save(dir.absoluteFilePath(fn));
- out << "a " << ".\\" << fn << endl;
+ out << "a .\\" << fn << endl;
}
if(isGeocache())
@@ -728,7 +742,7 @@ bool CTwoNavProject::loadWpts(const QString& filename, const QDir& dir)
if(!wpt.key.isEmpty())
{
- QString filenameCmt = QString("%1.html").arg(wpt.key);
+ QString filenameCmt = QString("QMS_CMT%1.html").arg(wpt.key);
if(QFile::exists(dir.absoluteFilePath(filenameCmt)))
{
QFile fileCmt(dir.absoluteFilePath(filenameCmt));
diff --git a/src/gis/trk/CDetailsTrk.cpp b/src/gis/trk/CDetailsTrk.cpp
index d5cdd3f..dac5df2 100644
--- a/src/gis/trk/CDetailsTrk.cpp
+++ b/src/gis/trk/CDetailsTrk.cpp
@@ -124,6 +124,10 @@ CDetailsTrk::CDetailsTrk(CGisItemTrk& trk, QWidget *parent)
connect(textCmtDesc, SIGNAL(anchorClicked(QUrl)), this, SLOT(slotLinkActivated(QUrl)));
connect(labelInfo, SIGNAL(linkActivated(QString)), this, SLOT(slotLinkActivated(QString)));
+ connect(plotDistance, SIGNAL(sigMouseClickState(int)), this, SLOT(slotMouseClickState(int)));
+ connect(plotElevation, SIGNAL(sigMouseClickState(int)), this, SLOT(slotMouseClickState(int)));
+ connect(plotSpeed, SIGNAL(sigMouseClickState(int)), this, SLOT(slotMouseClickState(int)));
+
connect(listHistory, SIGNAL(sigChanged()), this, SLOT(setupGui()));
slotShowPlots();
@@ -296,6 +300,18 @@ void CDetailsTrk::setMouseFocus(const CGisItemTrk::trkpt_t * pt)
}
}
+void CDetailsTrk::setMouseRangeFocus(const CGisItemTrk::trkpt_t * pt1, const CGisItemTrk::trkpt_t * pt2)
+{
+ if(pt1 && pt2)
+ {
+ labelInfoRange->setText(trk.getInfoRange(*pt1, *pt2));
+ }
+ else
+ {
+ labelInfoRange->setText("-\n-");
+ }
+}
+
void CDetailsTrk::setMouseClickFocus(const CGisItemTrk::trkpt_t * pt)
{
if(pt != 0)
@@ -306,6 +322,17 @@ void CDetailsTrk::setMouseClickFocus(const CGisItemTrk::trkpt_t * pt)
}
}
+void CDetailsTrk::slotMouseClickState(int s)
+{
+ if(s == IPlot::eMouseClickIdle)
+ {
+ labelInfoRange->setText("-\n-");
+ plotDistance->setMouseRangeFocus(0,0);
+ plotElevation->setMouseRangeFocus(0,0);
+ plotSpeed->setMouseRangeFocus(0,0);
+ }
+}
+
void CDetailsTrk::slotShowPlots()
{
if(checkProfile->isChecked())
@@ -359,7 +386,7 @@ void CDetailsTrk::slotItemSelectionChanged()
if(item != 0)
{
quint32 idx = item->text(eColNum).toUInt();
- trk.setMouseFocusByIndex(idx, CGisItemTrk::eFocusMouseMove);
+ trk.setMouseFocusByTotalIndex(idx, CGisItemTrk::eFocusMouseMove, "CDetailsTrk");
}
}
diff --git a/src/gis/trk/CDetailsTrk.h b/src/gis/trk/CDetailsTrk.h
index 3cae011..820989c 100644
--- a/src/gis/trk/CDetailsTrk.h
+++ b/src/gis/trk/CDetailsTrk.h
@@ -32,6 +32,7 @@ public:
virtual ~CDetailsTrk();
void setMouseFocus(const CGisItemTrk::trkpt_t * pt);
+ void setMouseRangeFocus(const CGisItemTrk::trkpt_t * pt1, const CGisItemTrk::trkpt_t * pt2);
void setMouseClickFocus(const CGisItemTrk::trkpt_t * pt);
public slots:
@@ -44,6 +45,7 @@ private slots:
void slotItemSelectionChanged();
void slotLinkActivated(const QUrl& url);
void slotLinkActivated(const QString& url);
+ void slotMouseClickState(int);
private:
enum columns_t
diff --git a/src/gis/trk/CGisItemTrk.cpp b/src/gis/trk/CGisItemTrk.cpp
index fc1aae5..4925e1d 100644
--- a/src/gis/trk/CGisItemTrk.cpp
+++ b/src/gis/trk/CGisItemTrk.cpp
@@ -105,6 +105,7 @@ struct trkwpt_t
{
}
+ QString name;
qreal x;
qreal y;
IGisItem::key_t key;
@@ -118,9 +119,12 @@ IGisItem::key_t CGisItemTrk::keyUserFocus;
CGisItemTrk::CGisItemTrk(const QString &name, qint32 idx1, qint32 idx2, const trk_t& srctrk, IGisProject * project)
: IGisItem(project, eTypeTrk, NOIDX)
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
flags = eFlagCreatedInQms;
@@ -163,9 +167,12 @@ CGisItemTrk::CGisItemTrk(const QString &name, qint32 idx1, qint32 idx2, const tr
CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int idx, bool clone)
: IGisItem(project, eTypeTrk, idx)
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
*this = parentTrk;
key.project = project->getKey();
@@ -188,9 +195,12 @@ CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int
CGisItemTrk::CGisItemTrk(const QPolygonF& l, const QString& name, IGisProject * project, int idx)
: IGisItem(project, eTypeTrk, idx)
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
trk.name = name;
readTrackDataFromPolyLine(l);
@@ -206,9 +216,12 @@ CGisItemTrk::CGisItemTrk(const QPolygonF& l, const QString& name, IGisProject *
CGisItemTrk::CGisItemTrk(const QDomNode& xml, IGisProject *project)
: IGisItem(project, eTypeTrk, project->childCount())
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
// --- start read and process data ----
setColor(penForeground.color());
@@ -222,9 +235,12 @@ CGisItemTrk::CGisItemTrk(const QDomNode& xml, IGisProject *project)
CGisItemTrk::CGisItemTrk(const QString& filename, IGisProject * project)
: IGisItem(project, eTypeTrk, project->childCount())
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
// --- start read and process data ----
setColor(penForeground.color());
@@ -241,9 +257,12 @@ CGisItemTrk::CGisItemTrk(const QString& filename, IGisProject * project)
CGisItemTrk::CGisItemTrk(const history_t& hist, IGisProject * project)
: IGisItem(project, eTypeTrk, project->childCount())
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
history = hist;
loadHistory(hist.histIdxCurrent);
@@ -252,9 +271,12 @@ CGisItemTrk::CGisItemTrk(const history_t& hist, IGisProject * project)
CGisItemTrk::CGisItemTrk(quint64 id, QSqlDatabase& db, IGisProject * project)
: IGisItem(project, eTypeTrk, NOIDX)
, penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , drawMode(eDrawNormal)
+ , mode(eModeNormal)
, mouseMoveFocus(0)
, mouseClickFocus(0)
+ , mouseRange1(0)
+ , mouseRange2(0)
+ , rangeState(eRangeStateIdle)
{
loadFromDb(id, db);
}
@@ -292,6 +314,10 @@ void CGisItemTrk::setDataFromPolyline(const QPolygonF &l)
*/
mouseClickFocus = 0;
mouseMoveFocus = 0;
+ mouseRange1 = 0;
+ mouseRange2 = 0;
+ rangeState = eRangeStateIdle;
+
delete dlgDetails;
readTrackDataFromPolyLine(l);
@@ -426,40 +452,49 @@ QString CGisItemTrk::getInfoRange()
{
qreal tmp, d, slope1, slope2;
QString str, val, unit;
- if(mouseClickFocus == 0 || mouseMoveFocus == 0)
+ if(mouseRange1 == 0 || mouseRange2 == 0)
{
return str;
}
- int idx1 = mouseClickFocus->idxTotal;
- int idx2 = mouseMoveFocus->idxTotal;
+ int idx1 = mouseRange1->idxTotal;
+ int idx2 = mouseRange2->idxTotal;
const trkpt_t * pt1, * pt2;
if(idx1 < idx2)
{
- pt1 = mouseClickFocus;
- pt2 = mouseMoveFocus;
+ pt1 = mouseRange1;
+ pt2 = mouseRange2;
}
else
{
- pt1 = mouseMoveFocus;
- pt2 = mouseClickFocus;
+ pt1 = mouseRange2;
+ pt2 = mouseRange1;
}
while(pt1->flags & trkpt_t::eHidden)
{
+ if(pt1->idxTotal == (cntTotalPoints - 1))
+ {
+ break;
+ }
pt1++;
}
while(pt2->flags & trkpt_t::eHidden)
{
+ if(pt2->idxTotal == 0)
+ {
+ break;
+ }
pt2--;
}
+ bool timeIsValid = pt1->time.isValid() && pt2->time.isValid();
d = tmp = pt2->distance - pt1->distance;
IUnit::self().meter2distance(tmp, val, unit);
- str += QString("%3 %1%2\n").arg(val).arg(unit).arg(QChar(0x21A6));
- if(pt1->time.isValid() && pt2->time.isValid())
+ str += QString("%3 %1%2 ").arg(val).arg(unit).arg(QChar(0x21A6));
+ if(timeIsValid)
{
quint32 t = pt2->time.toTime_t() - pt1->time.toTime_t();
quint32 hh = t / 3600;
@@ -468,20 +503,46 @@ QString CGisItemTrk::getInfoRange()
str += QString("%4 %1:%2:%3\n").arg(hh,2,10,QChar('0')).arg(mm,2,10,QChar('0')).arg(ss,2,10,QChar('0')).arg(QChar(0x231a));
}
+ else
+ {
+ str += "\n";
+ }
+
+ qreal deltaAscend = pt2->ascend - pt1->ascend;
+ qreal deltaDescend = pt2->descend - pt1->descend;
+ qreal deltaTime = pt2->time.toTime_t() - pt1->time.toTime_t();
- tmp = qAtan((pt2->ascend - pt1->ascend)/d);
+ tmp = qAtan(deltaAscend/d);
slope1 = qAbs(tmp * 360.0/(2 * M_PI));
slope2 = qTan(slope1 * DEG_TO_RAD) * 100;
- IUnit::self().meter2elevation(pt2->ascend - pt1->ascend, val, unit);
- str += QString("%3 %1%2 (%4%5, %6%)\n").arg(val).arg(unit).arg(QChar(0x2197)).arg(qRound(slope1)).arg(QChar(0260)).arg(qRound(slope2));
+ IUnit::self().meter2elevation(deltaAscend, val, unit);
+ str += QString("%3 %1%2 (%4%5, %6%)").arg(val).arg(unit).arg(QChar(0x2197)).arg(qRound(slope1)).arg(QChar(0260)).arg(qRound(slope2));
+ if(timeIsValid)
+ {
+ IUnit::self().meter2speed(deltaAscend/deltaTime, val, unit);
+ str += QString(", %1%2\n").arg(val).arg(unit);
+ }
+ else
+ {
+ str += "\n";
+ }
- tmp = qAtan((pt2->descend - pt1->descend)/d);
+ tmp = qAtan(deltaDescend/d);
slope1 = qAbs(tmp * 360.0/(2 * M_PI));
slope2 = qTan(slope1 * DEG_TO_RAD) * 100;
- IUnit::self().meter2elevation(pt2->descend - pt1->descend, val, unit);
+ IUnit::self().meter2elevation(deltaDescend, val, unit);
str += QString("%3 %1%2 (%4%5, %6%)").arg(val).arg(unit).arg(QChar(0x2198)).arg(qRound(slope1)).arg(QChar(0260)).arg(qRound(slope2));
+ if(timeIsValid)
+ {
+ IUnit::self().meter2speed(deltaDescend/deltaTime, val, unit);
+ str += QString(", %1%2\n").arg(val).arg(unit);
+ }
+ else
+ {
+ str += "\n";
+ }
return str;
@@ -560,6 +621,63 @@ QString CGisItemTrk::getInfoProgress(const trkpt_t& pt)
return str;
}
+QString CGisItemTrk::getInfoRange(const trkpt_t& pt1, const trkpt_t& pt2)
+{
+ QString str, val, unit;
+ qreal dt = NOFLOAT;
+
+ if(pt1.time.isValid() && pt2.time.isValid())
+ {
+ dt = pt2.time.toTime_t() - pt1.time.toTime_t();
+ }
+
+ if((pt1.ascend != NOFLOAT) && (pt2.ascend != NOFLOAT))
+ {
+ IUnit::self().meter2elevation(pt2.ascend - pt1.ascend, val, unit);
+ str += QObject::tr("Ascend: %1%2").arg(val).arg(unit);
+
+ if(dt != NOFLOAT)
+ {
+ IUnit::self().meter2speed((pt2.ascend - pt1.ascend)/dt, val, unit);
+ str += QObject::tr(", %1%2").arg(val).arg(unit);
+ }
+ }
+ else
+ {
+ str += QObject::tr("Ascend: -");
+ }
+
+
+ if((pt1.descend != NOFLOAT) && (pt2.descend != NOFLOAT))
+ {
+ IUnit::self().meter2elevation(pt2.descend - pt1.descend, val, unit);
+ str += QObject::tr(" Descend: %1%2").arg(val).arg(unit);
+
+ if(dt != NOFLOAT)
+ {
+ IUnit::self().meter2speed((pt2.descend - pt1.descend)/dt, val, unit);
+ str += QObject::tr(", %1%2").arg(val).arg(unit);
+ }
+ }
+ else
+ {
+ str += QObject::tr("Descend: -");
+ }
+
+ str += "\n";
+
+ IUnit::self().meter2distance(pt2.distance - pt1.distance, val, unit);
+ str += QObject::tr("Dist.: %1%2").arg(val).arg(unit);
+
+ if(dt != NOFLOAT)
+ {
+ IUnit::self().seconds2time(dt, val, unit);
+ str += QObject::tr(" Time: %1%2").arg(val).arg(unit);
+ }
+
+ return str;
+}
+
IScrOpt * CGisItemTrk::getScreenOptions(const QPoint& origin, IMouse * mouse)
{
if(scrOpt.isNull())
@@ -595,15 +713,15 @@ QPointF CGisItemTrk::getPointCloseBy(const QPoint& screenPos)
void CGisItemTrk::getSelectedVisiblePoints(qint32& idx1, qint32& idx2)
{
- if((mouseClickFocus == 0) || (mouseMoveFocus == 0))
+ if((mouseRange1 == 0) || (mouseRange2 == 0))
{
idx1 = NOIDX;
idx2 = NOIDX;
return;
}
- idx1 = mouseClickFocus->idxVisible;
- idx2 = mouseMoveFocus->idxVisible;
+ idx1 = mouseRange1->idxVisible;
+ idx2 = mouseRange2->idxVisible;
if(idx1 > idx2)
{
@@ -908,26 +1026,26 @@ void CGisItemTrk::findWaypointsCloseBy()
trkwpt.x = qCos(a1 * DEG_TO_RAD) * d;
trkwpt.y = qSin(a1 * DEG_TO_RAD) * d;
+ trkwpt.name = wpt->getName();
trkwpts << trkwpt;
}
+ if(line.isEmpty())
+ {
+ return;
+ }
// convert all coordinates into meter relative to the first track point.
- line[0].x = 0;
- line[0].y = 0;
- for(int i = 1; i < line.size(); i++)
+ for(int i = 0; i < line.size(); i++)
{
qreal d, a1, a2;
- pointDP& pt1 = line[i - 1];
- pointDP& pt2 = line[i];
-
- d = GPS_Math_Distance(pt0.x, pt0.y, pt2.x, pt2.y, a1, a2);
+ pointDP& pt1 = line[i];
- pt0 = pt2;
+ d = GPS_Math_Distance(pt0.x, pt0.y, pt1.x, pt1.y, a1, a2);
- pt2.x = pt1.x + qCos(a1 * DEG_TO_RAD) * d;
- pt2.y = pt1.y + qSin(a1 * DEG_TO_RAD) * d;
+ pt1.x = qCos(a1 * DEG_TO_RAD) * d;
+ pt1.y = qSin(a1 * DEG_TO_RAD) * d;
}
foreach(const trkwpt_t &trkwpt, trkwpts)
@@ -955,6 +1073,7 @@ void CGisItemTrk::findWaypointsCloseBy()
trkpt->keyWpt = trkwpt.key;
}
+
index = NOIDX;
minD = WPT_FOCUS_DIST_IN;
}
@@ -975,6 +1094,12 @@ void CGisItemTrk::findWaypointsCloseBy()
dlgDetails->setupGui();
}
+ foreach(IPlot * plot, registeredPlots)
+ {
+ plot->updateData();
+ }
+
+
QApplication::restoreOverrideCursor();
}
@@ -1163,14 +1288,14 @@ void CGisItemTrk::combine()
void CGisItemTrk::hideSelectedPoints()
{
- if((mouseClickFocus == 0) && (mouseMoveFocus == 0))
+ if((mouseRange1 == 0) && (mouseRange2 == 0))
{
return;
}
// read start/stop indices
- qint32 idx1 = mouseClickFocus->idxTotal;
- qint32 idx2 = mouseMoveFocus->idxTotal;
+ qint32 idx1 = mouseRange1->idxTotal;
+ qint32 idx2 = mouseRange2->idxTotal;
if(idx1 > idx2)
{
@@ -1202,21 +1327,22 @@ void CGisItemTrk::hideSelectedPoints()
}
}
}
- mouseClickFocus = 0;
- mouseMoveFocus = 0;
+ mouseRange1 = 0;
+ mouseRange2 = 0;
+ rangeState = eRangeStateIdle;
deriveSecondaryData();
changed(QObject::tr("Hide points."), "://icons/48x48/PointHide.png");
}
void CGisItemTrk::showSelectedPoints()
{
- if((mouseClickFocus == 0) && (mouseMoveFocus == 0))
+ if((mouseRange1 == 0) && (mouseRange2 == 0))
{
return;
}
- qint32 idx1 = mouseClickFocus->idxTotal;
- qint32 idx2 = mouseMoveFocus->idxTotal;
+ qint32 idx1 = mouseRange1->idxTotal;
+ qint32 idx2 = mouseRange2->idxTotal;
if(idx1 > idx2)
{
@@ -1247,21 +1373,22 @@ void CGisItemTrk::showSelectedPoints()
}
}
}
- mouseClickFocus = 0;
- mouseMoveFocus = 0;
+ mouseRange1 = 0;
+ mouseRange2 = 0;
+ rangeState = eRangeStateIdle;
deriveSecondaryData();
changed(QObject::tr("Show points."), "://icons/48x48/PointShow.png");
}
void CGisItemTrk::copySelectedPoints()
{
- if((mouseClickFocus == 0) && (mouseMoveFocus == 0))
+ if((mouseRange1 == 0) && (mouseRange2 == 0))
{
return;
}
- quint32 idx1 = mouseClickFocus->idxTotal;
- quint32 idx2 = mouseMoveFocus->idxTotal;
+ quint32 idx1 = mouseRange1->idxTotal;
+ quint32 idx2 = mouseRange2->idxTotal;
if(idx1 > idx2)
{
@@ -1305,7 +1432,7 @@ void CGisItemTrk::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>
gis->convertRad2Px(p2);
QRectF extViewport(p1,p2);
- if(drawMode == eDrawNormal)
+ if(mode == eModeNormal)
{
// in normal mode the trackline without points marked as deleted is drawn
foreach (const trkseg_t &seg, trk.segs)
@@ -1352,7 +1479,7 @@ void CGisItemTrk::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>
gis->convertRad2Px(lineFull);
// draw the full line first
- if(drawMode == eDrawRange)
+ if(mode == eModeRange)
{
QList<QPolygonF> lines;
splitLineToViewport(lineFull, extViewport, lines);
@@ -1411,7 +1538,7 @@ void CGisItemTrk::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
return;
}
- if(hasUserFocus() && mouseMoveFocus && (drawMode != eDrawRange))
+ if(hasUserFocus() && mouseMoveFocus && (mode != eModeRange))
{
// derive anchor
QPointF anchor(mouseMoveFocus->lon, mouseMoveFocus->lat);
@@ -1520,6 +1647,8 @@ void CGisItemTrk::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
p.drawPixmap(anchor - QPointF(4,4), QPixmap(bulletColors[colorIdx]));
}
+
+ drawRange(p);
}
void CGisItemTrk::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF> &blockedAreas, const QFontMetricsF &fm, CGisDraw *gis)
@@ -1540,11 +1669,11 @@ void CGisItemTrk::drawHighlight(QPainter& p)
void CGisItemTrk::drawRange(QPainter& p)
{
- if((mouseClickFocus != 0) && (mouseMoveFocus != 0))
+ if((mouseRange1 != 0) && (mouseRange2 != 0))
{
- const QPolygonF& line = (drawMode == eDrawRange) ? lineFull : lineSimple;
- int idx1 = (drawMode == eDrawRange) ? mouseClickFocus->idxTotal : mouseClickFocus->idxVisible;
- int idx2 = (drawMode == eDrawRange) ? mouseMoveFocus->idxTotal : mouseMoveFocus->idxVisible;
+ const QPolygonF& line = (mode == eModeRange) ? lineFull : lineSimple;
+ int idx1 = (mode == eModeRange) ? mouseRange1->idxTotal : mouseRange1->idxVisible;
+ int idx2 = (mode == eModeRange) ? mouseRange2->idxTotal : mouseRange2->idxVisible;
if(idx1 > idx2)
{
@@ -1553,15 +1682,38 @@ void CGisItemTrk::drawRange(QPainter& p)
QPolygonF seg = line.mid(idx1, idx2 - idx1 + 1);
- p.setPen(QPen(Qt::red, 12, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.setPen(QPen(Qt::darkGreen, 11, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.drawPolyline(seg);
+
+ p.setPen(QPen(Qt::green, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
p.drawPolyline(seg);
- foreach(const QPointF &pt, seg)
- {
- p.drawPixmap(pt.x() - 3, pt.y() - 3, bullet);
- }
}
}
+bool CGisItemTrk::setMode(mode_e m, const QString& owner)
+{
+ if(!mouseFocusOwner.isEmpty() && owner != mouseFocusOwner)
+ {
+ return false;
+ }
+
+ mode = m;
+ // always reset the range statemachine
+ rangeState = eRangeStateIdle;
+ mouseRange1 = 0;
+ mouseRange2 = 0;
+ mouseFocusOwner = mode == eModeRange ? owner : "";
+
+
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+ }
+
+ return true;
+}
+
void CGisItemTrk::setName(const QString& str)
{
setText(CGisListWks::eColumnName, str);
@@ -1640,7 +1792,7 @@ void CGisItemTrk::setIcon(const QString& c)
QTreeWidgetItem::setIcon(CGisListWks::eColumnIcon,icon);
}
-void CGisItemTrk::setMouseFocusByDistance(qreal dist, focusmode_e mode, IPlot *initiator)
+bool CGisItemTrk::setMouseFocusByDistance(qreal dist, focusmode_e fmode, const QString &owner)
{
const trkpt_t * newPointOfFocus = 0;
@@ -1673,10 +1825,10 @@ void CGisItemTrk::setMouseFocusByDistance(qreal dist, focusmode_e mode, IPlot *i
}
}
- publishMouseFocus(newPointOfFocus, mode, initiator);
+ return publishMouseFocus(newPointOfFocus, fmode, owner);
}
-void CGisItemTrk::setMouseFocusByTime(quint32 time, focusmode_e mode, IPlot * initiator)
+bool CGisItemTrk::setMouseFocusByTime(quint32 time, focusmode_e fmode, const QString &owner)
{
const trkpt_t * newPointOfFocus = 0;
@@ -1709,16 +1861,16 @@ void CGisItemTrk::setMouseFocusByTime(quint32 time, focusmode_e mode, IPlot * in
}
}
- publishMouseFocus(newPointOfFocus, mode, initiator);
+ return publishMouseFocus(newPointOfFocus, fmode, owner);
}
-QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e mode)
+QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner)
{
const trkpt_t * newPointOfFocus = 0;
quint32 idx = 0;
- const QPolygonF& line = (drawMode == eDrawRange) ? lineFull : lineSimple;
+ const QPolygonF& line = (mode == eModeRange) ? lineFull : lineSimple;
- if((hasUserFocus() || (drawMode == eDrawRange)) && (pt != NOPOINT))
+ if(pt != NOPOINT)
{
/*
Iterate over the polyline used to draw the track as it contains screen
@@ -1744,16 +1896,23 @@ QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e mode)
if(d < MIN_DIST_FOCUS)
{
- newPointOfFocus = (drawMode == eDrawRange) ? getTrkPtByTotalIndex(idx) : getTrkPtByVisibleIndex(idx);
+ newPointOfFocus = (mode == eModeRange) ? getTrkPtByTotalIndex(idx) : getTrkPtByVisibleIndex(idx);
}
}
- publishMouseFocus(newPointOfFocus, mode, 0);
+ if(!publishMouseFocus(newPointOfFocus, fmode, owner))
+ {
+ newPointOfFocus = 0;
+ }
- return newPointOfFocus ? line[idx] : NOPOINTF;
+ /*
+ Test for line size befor applying index. This fixes random assertions because
+ of an invalid index. The reason for this is unknown.
+ */
+ return newPointOfFocus ? ((int)idx < line.size() ? line[idx] : NOPOINTF) : NOPOINTF;
}
-void CGisItemTrk::setMouseFocusByIndex(qint32 idx, focusmode_e mode)
+bool CGisItemTrk::setMouseFocusByTotalIndex(qint32 idx, focusmode_e fmode, const QString &owner)
{
const trkpt_t * newPointOfFocus = 0;
@@ -1764,11 +1923,11 @@ void CGisItemTrk::setMouseFocusByIndex(qint32 idx, focusmode_e mode)
if(pt.idxTotal == idx)
{
newPointOfFocus = &pt;
- publishMouseFocus(newPointOfFocus, mode, 0);
- return;
+ return publishMouseFocus(newPointOfFocus, fmode, owner);
}
}
}
+ return false;
}
const CGisItemTrk::trkpt_t * CGisItemTrk::getTrkPtByVisibleIndex(qint32 idx)
@@ -1839,22 +1998,93 @@ bool CGisItemTrk::isTrkPtFirstVisible(qint32 idxTotal)
}
-void CGisItemTrk::publishMouseFocus(const trkpt_t * pt, focusmode_e mode, IPlot * initiator)
+bool CGisItemTrk::publishMouseFocus(const trkpt_t * pt, focusmode_e fmode, const QString& owner)
+{
+ if(mode == eModeRange)
+ {
+ if(mouseFocusOwner != owner)
+ {
+ return false;
+ }
+
+ publishMouseFocusRangeMode(pt, fmode);
+ }
+ else
+ {
+ publishMouseFocusNormalMode(pt, fmode);
+ }
+
+ return true;
+}
+
+void CGisItemTrk::publishMouseFocusRangeMode(const trkpt_t * pt, focusmode_e fmode)
+{
+ switch(rangeState)
+ {
+ case eRangeStateIdle:
+ {
+ if((fmode == eFocusMouseClick) && (pt != 0))
+ {
+ mouseRange1 = pt;
+ rangeState = eRangeState1st;
+ }
+
+ break;
+ }
+
+ case eRangeState1st:
+ {
+ mouseRange2 = pt;
+ if((fmode == eFocusMouseClick) && (pt != 0))
+ {
+ rangeState = eRangeState2nd;
+ }
+ break;
+ }
+
+ case eRangeState2nd:
+ {
+ if(fmode == eFocusMouseClick)
+ {
+ mouseRange1 = 0;
+ mouseRange2 = 0;
+ rangeState = eRangeStateIdle;
+ }
+ break;
+ }
+ }
+
+ foreach(IPlot * plot, registeredPlots)
+ {
+ plot->setMouseFocus(pt);
+ plot->setMouseRangeFocus(mouseRange1, mouseRange2);
+ }
+ if(!dlgDetails.isNull())
+ {
+ dlgDetails->setMouseFocus(pt);
+ dlgDetails->setMouseRangeFocus(mouseRange1, mouseRange2);
+ }
+}
+
+void CGisItemTrk::publishMouseFocusNormalMode(const trkpt_t * pt, focusmode_e fmode)
{
- switch(mode)
+ switch(fmode)
{
case eFocusMouseMove:
if(pt != mouseMoveFocus)
{
mouseMoveFocus = pt;
+
foreach(IPlot * plot, registeredPlots)
{
- plot->setMouseFocus(mouseClickFocus, mouseMoveFocus);
+ plot->setMouseFocus(pt);
+ plot->setMouseRangeFocus(0, 0);
}
if(!dlgDetails.isNull())
{
- dlgDetails->setMouseFocus(mouseMoveFocus);
+ dlgDetails->setMouseFocus(pt);
+ dlgDetails->setMouseRangeFocus(0, 0);
}
}
break;
@@ -1862,10 +2092,10 @@ void CGisItemTrk::publishMouseFocus(const trkpt_t * pt, focusmode_e mode, IPlot
case eFocusMouseClick:
if(pt != mouseClickFocus)
{
- mouseClickFocus = mouseClickFocus == 0 ? pt : 0;
+ mouseClickFocus = pt;
if(!dlgDetails.isNull())
{
- dlgDetails->setMouseClickFocus(mouseClickFocus);
+ dlgDetails->setMouseClickFocus(pt);
}
}
diff --git a/src/gis/trk/CGisItemTrk.h b/src/gis/trk/CGisItemTrk.h
index b829702..d7cd4e8 100644
--- a/src/gis/trk/CGisItemTrk.h
+++ b/src/gis/trk/CGisItemTrk.h
@@ -50,10 +50,10 @@ public:
,eFocusMouseClick
};
- enum drawmode_e
+ enum mode_e
{
- eDrawNormal
- , eDrawRange
+ eModeNormal
+ , eModeRange
};
/**
@@ -155,6 +155,7 @@ public:
QString getInfoRange();
QString getInfoTrkPt(const trkpt_t& pt);
QString getInfoProgress(const trkpt_t& pt);
+ QString getInfoRange(const trkpt_t& pt1, const trkpt_t& pt2);
quint32 getTotalElapsedSeconds() const
{
return totalElapsedSeconds;
@@ -189,10 +190,7 @@ public:
void setName(const QString& str);
void setColor(int idx);
- void setDrawMode(drawmode_e mode)
- {
- drawMode = mode;
- }
+ bool setMode(mode_e m, const QString &owner);
void setComment(const QString& str);
void setDescription(const QString& str);
void setLinks(const QList<link_t>& links);
@@ -321,7 +319,7 @@ public:
@param dist the distance in [m]
@param initiator a pointer to an initiating IPlot object, or 0
*/
- void setMouseFocusByDistance(qreal dist, focusmode_e mode, IPlot * initiator);
+ bool setMouseFocusByDistance(qreal dist, focusmode_e fmode, const QString& owner);
/**
@brief Use point with time from start matching best the given time delta
@@ -329,20 +327,20 @@ public:
@param time a time delta in [s] relative to the start time
@param initiator a pointer to an initiating IPlot object, or 0
*/
- void setMouseFocusByTime(quint32 time, focusmode_e mode, IPlot * initiator);
+ bool setMouseFocusByTime(quint32 time, focusmode_e fmode, const QString& owner);
/**
@brief Use the point that is closest to the given point on the screen.
@param pt a point on the screen in pixel.
*/
- QPointF setMouseFocusByPoint(const QPoint& pt, focusmode_e mode);
+ QPointF setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString& owner);
/**
@brief Use point with given index counter
@param idx
*/
- void setMouseFocusByIndex(qint32 idx, focusmode_e mode);
+ bool setMouseFocusByTotalIndex(qint32 idx, focusmode_e fmode, const QString& owner);
/**
@brief Reduce the amount of visible track points with the help of the Douglas Peuker algorithm
@@ -476,7 +474,9 @@ private:
@param mode The reason for the focus
@param initiator A pointer to an IPlot object that has set the point of focus. Can be 0.
*/
- void publishMouseFocus(const trkpt_t * pt, focusmode_e mode, IPlot *initiator);
+ bool publishMouseFocus(const trkpt_t * pt, focusmode_e fmode, const QString &owner);
+ void publishMouseFocusNormalMode(const trkpt_t * pt, focusmode_e fmode);
+ void publishMouseFocusRangeMode(const trkpt_t * pt, focusmode_e fmode);
/**
@brief Replace all trackpoints by the coordinates stored in the polyline
@@ -601,7 +601,7 @@ private:
QPen penForeground;
- drawmode_e drawMode;
+ mode_e mode;
qint32 cntTotalPoints;
qint32 cntVisiblePoints;
@@ -647,9 +647,22 @@ private:
const trkpt_t * mouseMoveFocus;
const trkpt_t * mouseClickFocus;
+ const trkpt_t * mouseRange1;
+ const trkpt_t * mouseRange2;
QPointer<CDetailsTrk> dlgDetails;
QPointer<CScrOptTrk> scrOpt;
+
+ enum rangestate_e
+ {
+ eRangeStateIdle
+ , eRangeState1st
+ , eRangeState2nd
+ };
+
+ rangestate_e rangeState;
+
+ QString mouseFocusOwner;
};
#endif //CGISITEMTRK_H
diff --git a/src/gis/trk/CScrOptTrk.cpp b/src/gis/trk/CScrOptTrk.cpp
index e0afa11..64a1e55 100644
--- a/src/gis/trk/CScrOptTrk.cpp
+++ b/src/gis/trk/CScrOptTrk.cpp
@@ -58,8 +58,8 @@ CScrOptTrk::CScrOptTrk(CGisItemTrk * trk, const QPoint& point, IMouse *parent)
connect(toolRange, SIGNAL(clicked()), this, SLOT(slotRange()));
// reset user focus if the track has it
- trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
- trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick);
+ trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CScrOptTrk");
+ trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CScrOptTrk");
}
CScrOptTrk::~CScrOptTrk()
diff --git a/src/gis/trk/IDetailsTrk.ui b/src/gis/trk/IDetailsTrk.ui
index 2bc6538..0515287 100644
--- a/src/gis/trk/IDetailsTrk.ui
+++ b/src/gis/trk/IDetailsTrk.ui
@@ -80,6 +80,27 @@
</widget>
</item>
<item>
+ <widget class="Line" name="line_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelInfoRange">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>-
+-</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
diff --git a/src/grid/CProjWizard.cpp b/src/grid/CProjWizard.cpp
index 4769611..22e6fa6 100644
--- a/src/grid/CProjWizard.cpp
+++ b/src/grid/CProjWizard.cpp
@@ -69,7 +69,7 @@ CProjWizard::CProjWizard(QLineEdit &line)
connect(spinUTMZone, SIGNAL(valueChanged(int)), this, SLOT(slotChange()));
QString projstr = line.text();
- QRegExp re2("\\s*\\+proj=merc \\+a=6378137 \\+b=6378137 \\+lat_ts=0.0 \\+lon_0=0.0 \\+x_0=0.0 \\+y_0=0 \\+k=1.0 \\+units=m \\+nadgrids=@null \\+no_defs");
+ QRegExp re2("\\s*\\+proj=merc \\+a=6378137 \\+b=6378137 \\+lat_ts=0.001 \\+lon_0=0.0 \\+x_0=0.0 \\+y_0=0 \\+k=1.0 \\+units=m \\+nadgrids=@null \\+no_defs");
QRegExp re3("\\s*\\+proj=merc\\s(.*)");
QRegExp re4("\\s*\\+proj=utm \\+zone=([0-9]+)\\s(.*)");
@@ -151,7 +151,7 @@ void CProjWizard::slotChange()
}
else if(radioWorldMercator->isChecked())
{
- str += "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
+ str += "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.001 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
labelResult->setText(str);
return;
}
diff --git a/src/mouse/CScrOptRangeTrk.cpp b/src/helpers/CFadingIcon.cpp
similarity index 55%
copy from src/mouse/CScrOptRangeTrk.cpp
copy to src/helpers/CFadingIcon.cpp
index 5651650..0888f6a 100644
--- a/src/mouse/CScrOptRangeTrk.cpp
+++ b/src/helpers/CFadingIcon.cpp
@@ -16,36 +16,46 @@
**********************************************************************************************/
-#include "CMainWindow.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "mouse/CScrOptRangeTrk.h"
-
+#include "CFadingIcon.h"
#include <QtWidgets>
-CScrOptRangeTrk::CScrOptRangeTrk(const QPointF &point, CGisItemTrk * trk, QWidget *parent)
- : IScrOpt(parent)
+CFadingIcon::CFadingIcon(const QPoint& pt, const QString &resource, QWidget *parent)
+ : QLabel(parent)
+ , o(1.0)
+ , icon(resource)
{
- setupUi(this);
- label->setFont(CMainWindow::self().getMapFont());
- label->setText(trk->getInfoRange());
- adjustSize();
+ setPixmap(icon);
- bool isReadOnly = trk->isReadOnly();
- toolHidePoints->setEnabled(!isReadOnly);
- toolShowPoints->setEnabled(!isReadOnly);
+ QTimer * timer = new QTimer(this);
+ timer->setSingleShot(false);
+ timer->setInterval(100);
+ timer->start();
- setOrigin(point.toPoint());
+ connect(timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
- move(point.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
+ move(pt.x() - icon.width()/2, pt.y() - icon.height()/2);
show();
}
-CScrOptRangeTrk::~CScrOptRangeTrk()
+CFadingIcon::~CFadingIcon()
{
}
-void CScrOptRangeTrk::draw(QPainter& p)
+void CFadingIcon::slotTimeout()
{
- drawBubble2(origin, p);
+ o -= 0.1;
+ if(o <= 0)
+ {
+ deleteLater();
+ }
+ else
+ {
+ QPixmap tmp(icon.size());
+ tmp.fill(Qt::transparent);
+
+ QPainter p(&tmp);
+ p.setOpacity(o);
+ p.drawPixmap(0,0,icon);
+ setPixmap(tmp);
+ }
}
-
diff --git a/src/plot/CPlotSpeed.h b/src/helpers/CFadingIcon.h
similarity index 73%
copy from src/plot/CPlotSpeed.h
copy to src/helpers/CFadingIcon.h
index 58bdc27..93afad5 100644
--- a/src/plot/CPlotSpeed.h
+++ b/src/helpers/CFadingIcon.h
@@ -16,22 +16,26 @@
**********************************************************************************************/
-#ifndef CPLOTSPEED_H
-#define CPLOTSPEED_H
+#ifndef CFADINGICON_H
+#define CFADINGICON_H
-#include "plot/IPlot.h"
+#include <QLabel>
+#include <QPixmap>
-class CPlotSpeed : public IPlot
+class CFadingIcon : public QLabel
{
Q_OBJECT
public:
- CPlotSpeed(QWidget * parent);
- virtual ~CPlotSpeed();
+ CFadingIcon(const QPoint &pt, const QString& resource, QWidget * parent);
+ virtual ~CFadingIcon();
- void setTrack(CGisItemTrk * track);
- void updateData();
- void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
+private slots:
+ void slotTimeout();
+
+private:
+ qreal o;
+ QPixmap icon;
};
-#endif //CPLOTSPEED_H
+#endif //CFADINGICON_H
diff --git a/src/helpers/CFileExt.h b/src/helpers/CFileExt.h
index a09841b..3aef855 100644
--- a/src/helpers/CFileExt.h
+++ b/src/helpers/CFileExt.h
@@ -20,6 +20,7 @@
#define CFILEEXT_H
#include <QFile>
+#include <QtCore>
class CFileExt : public QFile
{
@@ -28,10 +29,17 @@ public:
: QFile(filename)
, mapped(NULL)
{
+ cnt++;
}
+ ~CFileExt()
+ {
+ cnt--;
+ }
+
+#ifndef Q_OS_WIN32
// data access function
- const char *data(qint64 offset)
+ const char *data(qint64 offset, qint64 s)
{
if(!mapped)
{
@@ -39,8 +47,20 @@ public:
}
return mapped + offset;
}
+#else
+ // data access function
+ const char *data(qint64 offset, qint64 s)
+ {
+ uchar * p = map(offset,s);
+ return (const char *)p;
+ }
+#endif
+
private:
+ static int cnt;
+
const char *mapped;
+
};
diff --git a/src/icons/32x32/NoGo.png b/src/icons/32x32/NoGo.png
new file mode 100644
index 0000000..25503e3
Binary files /dev/null and b/src/icons/32x32/NoGo.png differ
diff --git a/src/icons/48x48/NoGo.png b/src/icons/48x48/NoGo.png
new file mode 100644
index 0000000..ce6ee19
Binary files /dev/null and b/src/icons/48x48/NoGo.png differ
diff --git a/src/icons/NoGo.svg b/src/icons/NoGo.svg
new file mode 100644
index 0000000..7f503b4
--- /dev/null
+++ b/src/icons/NoGo.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.5 r10040"
+ sodipodi:docname="NoGo.svg">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9195959"
+ inkscape:cx="-2.923257"
+ inkscape:cy="37.730236"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1012"
+ inkscape:window-x="-2"
+ inkscape:window-y="-3"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2985"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-988.36218)">
+ <path
+ style="fill:#ff0000;stroke:#000080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 34.65625 6.5 C 22.229855 6.5169515 12.170548 16.604855 12.1875 29.03125 L 12.1875 29.09375 C 12.242637 41.492957 22.319432 51.516915 34.71875 51.5 C 47.145145 51.483048 57.204452 41.395145 57.1875 28.96875 C 57.170548 16.542355 47.082645 6.4830485 34.65625 6.5 z M 34.65625 14.3125 C 37.268512 14.308937 39.718252 14.993509 41.84375 16.1875 L 21.875 36.15625 C 20.695254 34.051183 20.011482 31.644463 20 29.0625 L 20 29.03125 C 19.988945 20.927079 26.552079 14.323555 34.65625 14. [...]
+ transform="translate(0,988.36218)"
+ id="path3005" />
+ </g>
+</svg>
diff --git a/src/locale/qmapshack_cs.ts b/src/locale/qmapshack_cs.ts
index 0412e5c..adc1fca 100644
--- a/src/locale/qmapshack_cs.ts
+++ b/src/locale/qmapshack_cs.ts
@@ -108,7 +108,7 @@
<message>
<location filename="../gis/ovl/CDetailsOvlArea.cpp" line="136"/>
<source>Enter new area name.</source>
- <translation type="unfinished">Zadat název nové oblasti.</translation>
+ <translation>Zadat název nové oblasti.</translation>
</message>
<message>
<source>Enter new waypoint name.</source>
@@ -183,17 +183,17 @@
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="480"/>
<source>distance: %1%2</source>
- <translation type="unfinished"></translation>
+ <translation>Vzdálenost: %1%2</translation>
</message>
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="482"/>
<source>ascent: %1%2</source>
- <translation type="unfinished"></translation>
+ <translation>Stoupání: %1%2</translation>
</message>
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="484"/>
<source>descend: %1%2</source>
- <translation type="unfinished"></translation>
+ <translation>Klesání: %1%2</translation>
</message>
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
@@ -246,24 +246,24 @@
<translation>Rozkrájet stopu na kusy</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="230"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="236"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="255"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="257"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="222"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="231"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="234"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="240"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="259"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="261"/>
<source>%1 %2</source>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Edit name...</source>
- <translation type="unfinished">Upravit název...</translation>
+ <translation>Upravit název...</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Enter new track name.</source>
- <translation type="unfinished">Zadat název nové stopy.</translation>
+ <translation>Zadat název nové stopy.</translation>
</message>
<message>
<source><h4>Comment:</h4></source>
@@ -451,8 +451,8 @@
</message>
<message>
<location filename="../gis/CGisListWks.cpp" line="586"/>
- <location filename="../gis/CGisListWks.cpp" line="1237"/>
- <location filename="../gis/CGisListWks.cpp" line="1275"/>
+ <location filename="../gis/CGisListWks.cpp" line="1253"/>
+ <location filename="../gis/CGisListWks.cpp" line="1292"/>
<source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
<translation><b>Aktualizovat zařízení</b><p>Aktualizovat %1<br/>Počkejte, prosím...</p></translation>
</message>
@@ -464,7 +464,7 @@
<message>
<location filename="../gis/CGisListWks.cpp" line="95"/>
<source>Send to Devices</source>
- <translation type="unfinished"></translation>
+ <translation>Poslat do zařízení</translation>
</message>
<message>
<location filename="../gis/CGisListWks.cpp" line="118"/>
@@ -508,12 +508,12 @@
<translation>Nahrává se pohled. Počkejte, prosím.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>Close all projects...</source>
<translation>Zavřít všechny projekty...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>This will remove all projects from the workspace.</source>
<translation>Tímto budou všechny projekty odstraněny z pohledu.</translation>
</message>
@@ -577,653 +577,653 @@
<context>
<name>CMainWindow</name>
<message>
- <location filename="../CMainWindow.cpp" line="476"/>
+ <location filename="../CMainWindow.cpp" line="485"/>
<source>Ele: %1%2</source>
<translation>Výška: %1%2</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="602"/>
+ <location filename="../CMainWindow.cpp" line="611"/>
<source>Load GIS Data...</source>
<translation>Nahrát data GIS...</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="636"/>
+ <location filename="../CMainWindow.cpp" line="645"/>
<source>Select output file</source>
- <translation type="unfinished"></translation>
+ <translation>Vybrat výstupní soubor</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="662"/>
+ <location filename="../CMainWindow.cpp" line="671"/>
<source>Select file to load</source>
- <translation type="unfinished"></translation>
+ <translation>Vybrat soubor k nahrání</translation>
</message>
</context>
<context>
<name>CMapIMG</name>
<message>
- <location filename="../map/CMapIMG.cpp" line="151"/>
+ <location filename="../map/CMapIMG.cpp" line="153"/>
<source>Failed ...</source>
<translation>Nepodařilo se...</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="166"/>
+ <location filename="../map/CMapIMG.cpp" line="168"/>
<source>Unspecified</source>
<translation>Neurčeno</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="167"/>
+ <location filename="../map/CMapIMG.cpp" line="169"/>
<source>French</source>
<translation>Francouzský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="168"/>
+ <location filename="../map/CMapIMG.cpp" line="170"/>
<source>German</source>
<translation>Německý</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="169"/>
+ <location filename="../map/CMapIMG.cpp" line="171"/>
<source>Dutch</source>
<translation>Holandský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="170"/>
+ <location filename="../map/CMapIMG.cpp" line="172"/>
<source>English</source>
<translation>Anglický</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="171"/>
+ <location filename="../map/CMapIMG.cpp" line="173"/>
<source>Italian</source>
<translation>Italský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="172"/>
+ <location filename="../map/CMapIMG.cpp" line="174"/>
<source>Finnish</source>
<translation>Finský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="173"/>
+ <location filename="../map/CMapIMG.cpp" line="175"/>
<source>Swedish</source>
<translation>Švédský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="174"/>
+ <location filename="../map/CMapIMG.cpp" line="176"/>
<source>Spanish</source>
<translation>Španělský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="175"/>
+ <location filename="../map/CMapIMG.cpp" line="177"/>
<source>Basque</source>
<translation>Baskický</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="176"/>
+ <location filename="../map/CMapIMG.cpp" line="178"/>
<source>Catalan</source>
<translation>Katalánský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="177"/>
+ <location filename="../map/CMapIMG.cpp" line="179"/>
<source>Galician</source>
<translation>Galicijský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="178"/>
+ <location filename="../map/CMapIMG.cpp" line="180"/>
<source>Welsh</source>
<translation>Velšský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="179"/>
+ <location filename="../map/CMapIMG.cpp" line="181"/>
<source>Gaelic</source>
<translation>Gaelský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="180"/>
+ <location filename="../map/CMapIMG.cpp" line="182"/>
<source>Danish</source>
<translation>Dánský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="181"/>
+ <location filename="../map/CMapIMG.cpp" line="183"/>
<source>Norwegian</source>
<translation>Norský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="182"/>
+ <location filename="../map/CMapIMG.cpp" line="184"/>
<source>Portuguese</source>
<translation>Portugalský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="183"/>
+ <location filename="../map/CMapIMG.cpp" line="185"/>
<source>Slovak</source>
<translation>Slovenský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="184"/>
+ <location filename="../map/CMapIMG.cpp" line="186"/>
<source>Czech</source>
<translation>Český</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="185"/>
+ <location filename="../map/CMapIMG.cpp" line="187"/>
<source>Croatian</source>
<translation>Chorvatský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="186"/>
+ <location filename="../map/CMapIMG.cpp" line="188"/>
<source>Hungarian</source>
<translation>Maďarský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="187"/>
+ <location filename="../map/CMapIMG.cpp" line="189"/>
<source>Polish</source>
<translation>Polský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="188"/>
+ <location filename="../map/CMapIMG.cpp" line="190"/>
<source>Turkish</source>
<translation>Turecký</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="189"/>
+ <location filename="../map/CMapIMG.cpp" line="191"/>
<source>Greek</source>
<translation>Řecký</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="190"/>
+ <location filename="../map/CMapIMG.cpp" line="192"/>
<source>Slovenian</source>
<translation>Slovinský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="191"/>
+ <location filename="../map/CMapIMG.cpp" line="193"/>
<source>Russian</source>
<translation>Ruský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="192"/>
+ <location filename="../map/CMapIMG.cpp" line="194"/>
<source>Estonian</source>
<translation>Estonský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="193"/>
+ <location filename="../map/CMapIMG.cpp" line="195"/>
<source>Latvian</source>
<translation>Lotyšský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="194"/>
+ <location filename="../map/CMapIMG.cpp" line="196"/>
<source>Romanian</source>
<translation>Rumunský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="195"/>
+ <location filename="../map/CMapIMG.cpp" line="197"/>
<source>Albanian</source>
<translation>Albánský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="196"/>
+ <location filename="../map/CMapIMG.cpp" line="198"/>
<source>Bosnian</source>
<translation>Bosenský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="197"/>
+ <location filename="../map/CMapIMG.cpp" line="199"/>
<source>Lithuanian</source>
<translation>Litevský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="198"/>
+ <location filename="../map/CMapIMG.cpp" line="200"/>
<source>Serbian</source>
<translation>Srbský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="199"/>
+ <location filename="../map/CMapIMG.cpp" line="201"/>
<source>Macedonian</source>
<translation>Makedonský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="200"/>
+ <location filename="../map/CMapIMG.cpp" line="202"/>
<source>Bulgarian</source>
<translation>Bulharský</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="257"/>
+ <location filename="../map/CMapIMG.cpp" line="259"/>
<source>Major highway</source>
<translation>Dálnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="258"/>
+ <location filename="../map/CMapIMG.cpp" line="260"/>
<source>Principal highway</source>
<translation>Silnice první třídy</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="259"/>
+ <location filename="../map/CMapIMG.cpp" line="261"/>
<source>Other highway</source>
<translation>Jiné rychlostní silnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="260"/>
+ <location filename="../map/CMapIMG.cpp" line="262"/>
<source>Arterial road</source>
<translation>Rychlostní silnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="261"/>
+ <location filename="../map/CMapIMG.cpp" line="263"/>
<source>Collector road</source>
<translation>Státní silnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="262"/>
+ <location filename="../map/CMapIMG.cpp" line="264"/>
<source>Residential street</source>
<translation>Silnice v obytné oblasti</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="263"/>
+ <location filename="../map/CMapIMG.cpp" line="265"/>
<source>Alley/Private road</source>
<translation>Soukromá cesta</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="264"/>
+ <location filename="../map/CMapIMG.cpp" line="266"/>
<source>Highway ramp, low speed</source>
<translation>Nájezd na dálnici/sjezd z dálnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="265"/>
+ <location filename="../map/CMapIMG.cpp" line="267"/>
<source>Highway ramp, high speed</source>
<translation>Nájezd na dálnici/sjezd z dálnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="266"/>
+ <location filename="../map/CMapIMG.cpp" line="268"/>
<source>Unpaved road</source>
<translation>Neasfaltovaná cesta</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="267"/>
+ <location filename="../map/CMapIMG.cpp" line="269"/>
<source>Major highway connector</source>
<translation>Dalniční přivaděč</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="268"/>
+ <location filename="../map/CMapIMG.cpp" line="270"/>
<source>Roundabout</source>
<translation>Kruhový objezd</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="269"/>
+ <location filename="../map/CMapIMG.cpp" line="271"/>
<source>Railroad</source>
<translation>Železnice, koleje</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="270"/>
+ <location filename="../map/CMapIMG.cpp" line="272"/>
<source>Shoreline</source>
<translation>Břeh</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="271"/>
+ <location filename="../map/CMapIMG.cpp" line="273"/>
<source>Trail</source>
<translation>Cesta</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="272"/>
+ <location filename="../map/CMapIMG.cpp" line="274"/>
<source>Stream</source>
<translation>Proud</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="273"/>
+ <location filename="../map/CMapIMG.cpp" line="275"/>
<source>Time zone</source>
<translation>Časové pásmo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="274"/>
- <location filename="../map/CMapIMG.cpp" line="275"/>
+ <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="277"/>
<source>Ferry</source>
<translation>Přívoz</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="278"/>
<source>State/province border</source>
<translation>Státní/Zemská hranice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="277"/>
+ <location filename="../map/CMapIMG.cpp" line="279"/>
<source>County/parish border</source>
<translation>Krajská/Obecní hranice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="278"/>
+ <location filename="../map/CMapIMG.cpp" line="280"/>
<source>International border</source>
<translation>Mezinárodní hranice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="279"/>
+ <location filename="../map/CMapIMG.cpp" line="281"/>
<source>River</source>
<translation>Řeka</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="280"/>
+ <location filename="../map/CMapIMG.cpp" line="282"/>
<source>Minor land contour</source>
<translation>Malá vrstevnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="281"/>
+ <location filename="../map/CMapIMG.cpp" line="283"/>
<source>Intermediate land contour</source>
<translation>Střední vrstevnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="282"/>
+ <location filename="../map/CMapIMG.cpp" line="284"/>
<source>Major land contour</source>
<translation>Velká vrstevnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="283"/>
+ <location filename="../map/CMapIMG.cpp" line="285"/>
<source>Minor depth contour</source>
<translation>Malá hloubková čára</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="284"/>
+ <location filename="../map/CMapIMG.cpp" line="286"/>
<source>Intermediate depth contour</source>
<translation>Střední hloubková čára</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="285"/>
+ <location filename="../map/CMapIMG.cpp" line="287"/>
<source>Major depth contour</source>
<translation>Velká hloubková čára</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="286"/>
+ <location filename="../map/CMapIMG.cpp" line="288"/>
<source>Intermittent stream</source>
<translation>Přerušovaný potok (Wadi)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="287"/>
- <location filename="../map/CMapIMG.cpp" line="369"/>
+ <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="371"/>
<source>Airport runway</source>
<translation>Přistávací dráha</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="288"/>
+ <location filename="../map/CMapIMG.cpp" line="290"/>
<source>Pipeline</source>
<translation>Dálkové potrubí</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="291"/>
<source>Powerline</source>
<translation>Elektrické vedení</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="290"/>
+ <location filename="../map/CMapIMG.cpp" line="292"/>
<source>Marine boundary</source>
<translation>Hranice moře</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="291"/>
+ <location filename="../map/CMapIMG.cpp" line="293"/>
<source>Hazard boundary</source>
<translation>Nebezpečná hranice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="356"/>
+ <location filename="../map/CMapIMG.cpp" line="358"/>
<source>Large urban area (>200K)</source>
<translation>Velkoměstská oblast (>200 000)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="357"/>
+ <location filename="../map/CMapIMG.cpp" line="359"/>
<source>Small urban area (<200K)</source>
<translation>Maloměstská oblast (>200 000)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="358"/>
+ <location filename="../map/CMapIMG.cpp" line="360"/>
<source>Rural housing area</source>
<translation>Městská obytná oblast</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="359"/>
+ <location filename="../map/CMapIMG.cpp" line="361"/>
<source>Military base</source>
<translation>Vojenská základna</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="360"/>
+ <location filename="../map/CMapIMG.cpp" line="362"/>
<source>Parking lot</source>
<translation>Parkoviště</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="361"/>
+ <location filename="../map/CMapIMG.cpp" line="363"/>
<source>Parking garage</source>
<translation>Parkovací budova</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="362"/>
+ <location filename="../map/CMapIMG.cpp" line="364"/>
<source>Airport</source>
<translation>Letiště</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="363"/>
+ <location filename="../map/CMapIMG.cpp" line="365"/>
<source>Shopping center</source>
<translation>Nákupní středisko</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="364"/>
+ <location filename="../map/CMapIMG.cpp" line="366"/>
<source>Marina</source>
<translation>Přístav</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="365"/>
+ <location filename="../map/CMapIMG.cpp" line="367"/>
<source>University/College</source>
<translation>Univerzita/Vysoká škola</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="366"/>
+ <location filename="../map/CMapIMG.cpp" line="368"/>
<source>Hospital</source>
<translation>Nemocnice</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="367"/>
+ <location filename="../map/CMapIMG.cpp" line="369"/>
<source>Industrial complex</source>
<translation>Průmyslový celek</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="368"/>
+ <location filename="../map/CMapIMG.cpp" line="370"/>
<source>Reservation</source>
<translation>Chráněné území</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="370"/>
+ <location filename="../map/CMapIMG.cpp" line="372"/>
<source>Man-made area</source>
<translation>Zástavba</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="371"/>
+ <location filename="../map/CMapIMG.cpp" line="373"/>
<source>Sports complex</source>
<translation>Oblast pro tělesné činnosti</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="372"/>
+ <location filename="../map/CMapIMG.cpp" line="374"/>
<source>Golf course</source>
<translation>Golfové hřiště</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="373"/>
+ <location filename="../map/CMapIMG.cpp" line="375"/>
<source>Cemetery</source>
<translation>Hřbitov</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="374"/>
- <location filename="../map/CMapIMG.cpp" line="375"/>
<location filename="../map/CMapIMG.cpp" line="376"/>
+ <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="378"/>
<source>National park</source>
<translation>Národní park</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="379"/>
<source>City park</source>
<translation>Městské sady</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="378"/>
- <location filename="../map/CMapIMG.cpp" line="379"/>
<location filename="../map/CMapIMG.cpp" line="380"/>
+ <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="382"/>
<source>State park</source>
<translation>Státní park</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="383"/>
<source>Forest</source>
<translation>Les</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="382"/>
+ <location filename="../map/CMapIMG.cpp" line="384"/>
<source>Ocean</source>
<translation>Oceán</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="383"/>
<location filename="../map/CMapIMG.cpp" line="385"/>
- <location filename="../map/CMapIMG.cpp" line="395"/>
+ <location filename="../map/CMapIMG.cpp" line="387"/>
+ <location filename="../map/CMapIMG.cpp" line="397"/>
<source>Blue (unknown)</source>
<translation>Modrá (neznámé)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="384"/>
+ <location filename="../map/CMapIMG.cpp" line="386"/>
<source>Sea</source>
<translation>Moře</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="386"/>
- <location filename="../map/CMapIMG.cpp" line="387"/>
- <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="388"/>
+ <location filename="../map/CMapIMG.cpp" line="389"/>
+ <location filename="../map/CMapIMG.cpp" line="396"/>
<source>Large lake</source>
<translation>Velké jezero</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="388"/>
- <location filename="../map/CMapIMG.cpp" line="389"/>
+ <location filename="../map/CMapIMG.cpp" line="390"/>
+ <location filename="../map/CMapIMG.cpp" line="391"/>
<source>Medium lake</source>
<translation>Střední jezero</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="390"/>
- <location filename="../map/CMapIMG.cpp" line="391"/>
+ <location filename="../map/CMapIMG.cpp" line="392"/>
+ <location filename="../map/CMapIMG.cpp" line="393"/>
<source>Small lake</source>
<translation>Malé jezero</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="392"/>
- <location filename="../map/CMapIMG.cpp" line="393"/>
+ <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="395"/>
<source>Major lake</source>
<translation>Velmi velké jezero</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="396"/>
+ <location filename="../map/CMapIMG.cpp" line="398"/>
<source>Major River</source>
<translation>Veletok</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="397"/>
+ <location filename="../map/CMapIMG.cpp" line="399"/>
<source>Large River</source>
<translation>Velká řeka</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="398"/>
+ <location filename="../map/CMapIMG.cpp" line="400"/>
<source>Medium River</source>
<translation>Střední řeka</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="399"/>
+ <location filename="../map/CMapIMG.cpp" line="401"/>
<source>Small River</source>
<translation>Malá řeka</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="402"/>
+ <location filename="../map/CMapIMG.cpp" line="404"/>
<source>Intermittent water</source>
<translation>Přerušovaná voda</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="403"/>
+ <location filename="../map/CMapIMG.cpp" line="405"/>
<source>Wetland/Swamp</source>
<translation>Močál/Bažina</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="404"/>
+ <location filename="../map/CMapIMG.cpp" line="406"/>
<source>Glacier</source>
<translation>Ledovec</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="405"/>
+ <location filename="../map/CMapIMG.cpp" line="407"/>
<source>Orchard/Plantation</source>
<translation>Sad/Plantáž</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="406"/>
+ <location filename="../map/CMapIMG.cpp" line="408"/>
<source>Scrub</source>
<translation>Křoví</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="407"/>
+ <location filename="../map/CMapIMG.cpp" line="409"/>
<source>Tundra</source>
<translation>Tundra</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="408"/>
+ <location filename="../map/CMapIMG.cpp" line="410"/>
<source>Flat</source>
<translation>Rovina</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="409"/>
+ <location filename="../map/CMapIMG.cpp" line="411"/>
<source>???</source>
<translation>???</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="445"/>
+ <location filename="../map/CMapIMG.cpp" line="447"/>
<source>Failed to read: </source>
<translation>Nepodařilo se přečíst: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="488"/>
+ <location filename="../map/CMapIMG.cpp" line="490"/>
<source>Failed to open: </source>
<translation>Nepodařilo se otevřít: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="512"/>
- <location filename="../map/CMapIMG.cpp" line="516"/>
+ <location filename="../map/CMapIMG.cpp" line="514"/>
+ <location filename="../map/CMapIMG.cpp" line="518"/>
<source>Bad file format: </source>
<translation>Špatný formát souboru: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="605"/>
+ <location filename="../map/CMapIMG.cpp" line="607"/>
<source>Failed to read file structure: </source>
<translation>Nepodařilo se přečíst stavbu souboru: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="638"/>
+ <location filename="../map/CMapIMG.cpp" line="640"/>
<source>Loading %1</source>
<translation>Nahrává se %1</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="643"/>
+ <location filename="../map/CMapIMG.cpp" line="645"/>
<source>User abort: </source>
<translation>Zrušeno uživatelem: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="646"/>
+ <location filename="../map/CMapIMG.cpp" line="648"/>
<source>File is NT format. QMapShack is unable to read map files with NT format: </source>
<translation>Soubor je ve formátu NT. QMapShack nedokáže číst mapové soubory ve formátu NT: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="738"/>
+ <location filename="../map/CMapIMG.cpp" line="740"/>
<source>File contains locked / encypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
<translation>Soubor obsahuje zamknutá/zašifrovaná data. Garmin nechce, aby byl tento soubor použit s jiným programem než dodaným Garminem.</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2475"/>
- <location filename="../map/CMapIMG.cpp" line="2483"/>
- <location filename="../map/CMapIMG.cpp" line="2487"/>
- <location filename="../map/CMapIMG.cpp" line="2492"/>
- <location filename="../map/CMapIMG.cpp" line="2538"/>
- <location filename="../map/CMapIMG.cpp" line="2546"/>
- <location filename="../map/CMapIMG.cpp" line="2550"/>
- <location filename="../map/CMapIMG.cpp" line="2555"/>
+ <location filename="../map/CMapIMG.cpp" line="2494"/>
+ <location filename="../map/CMapIMG.cpp" line="2502"/>
+ <location filename="../map/CMapIMG.cpp" line="2506"/>
+ <location filename="../map/CMapIMG.cpp" line="2511"/>
+ <location filename="../map/CMapIMG.cpp" line="2557"/>
+ <location filename="../map/CMapIMG.cpp" line="2565"/>
+ <location filename="../map/CMapIMG.cpp" line="2569"/>
+ <location filename="../map/CMapIMG.cpp" line="2574"/>
<source>Point of Interest</source>
<translation>Podivuhodnost</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2682"/>
+ <location filename="../map/CMapIMG.cpp" line="2701"/>
<source>Unknown</source>
<translation>Neznámý</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2728"/>
- <location filename="../map/CMapIMG.cpp" line="2736"/>
- <location filename="../map/CMapIMG.cpp" line="2743"/>
+ <location filename="../map/CMapIMG.cpp" line="2747"/>
+ <location filename="../map/CMapIMG.cpp" line="2755"/>
+ <location filename="../map/CMapIMG.cpp" line="2762"/>
<source>Area</source>
<translation>Oblast</translation>
</message>
@@ -1231,15 +1231,20 @@
<context>
<name>CMapList</name>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Deactivate</source>
<translation>Vypnout</translation>
</message>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Activate</source>
<translation>Zapnout</translation>
</message>
+ <message>
+ <location filename="../map/CMapList.cpp" line="174"/>
+ <source>Where do you want to store maps?</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>CMapMAP</name>
@@ -1262,19 +1267,19 @@
<context>
<name>CMapPathSetup</name>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="45"/>
+ <location filename="../map/CMapPathSetup.cpp" line="47"/>
<source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
<translation>Přidat nebo odstranit cesty obsahující mapy. V cestě může být více map, ale žádná podcesta není zpracována. Podporovanými formáty jsou: %1</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="60"/>
+ <location filename="../map/CMapPathSetup.cpp" line="62"/>
<source>Select map path...</source>
<translation>Vybrat cestu k mapě...</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="76"/>
+ <location filename="../map/CMapPathSetup.cpp" line="78"/>
<source>Select root path...</source>
- <translation type="unfinished"></translation>
+ <translation>Vybrat cestu ke kořeni...</translation>
</message>
</context>
<context>
@@ -1483,22 +1488,22 @@ Neznámá stavba.</translation>
<context>
<name>CMouseNormal</name>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="43"/>
<source>Add Waypoint</source>
<translation>Přidat cestovní bod</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="44"/>
<source>Add Track</source>
<translation>Přidat stopu</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="45"/>
<source>Add Area</source>
<translation>Přidat oblast</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="47"/>
<source>Copy position</source>
<translation>Kopírovat polohu</translation>
</message>
@@ -1876,47 +1881,47 @@ není platným vymezením soustavy souřadnic
<message>
<location filename="../IAbout.ui" line="140"/>
<source>Rainer Unseld </source>
- <translation type="unfinished"></translation>
+ <translation>Rainer Unseld</translation>
</message>
<message>
<location filename="../IAbout.ui" line="147"/>
<source>French</source>
- <translation type="unfinished">Francouzský</translation>
+ <translation>Francouzština</translation>
</message>
<message>
<location filename="../IAbout.ui" line="154"/>
<source>Czech</source>
- <translation type="unfinished">Český</translation>
+ <translation>Čeština</translation>
</message>
<message>
<location filename="../IAbout.ui" line="161"/>
<source>Pavel Fric</source>
- <translation type="unfinished"></translation>
+ <translation>Pavel Fric</translation>
</message>
<message>
<location filename="../IAbout.ui" line="168"/>
<source>German</source>
- <translation type="unfinished">Německý</translation>
+ <translation>Němčina</translation>
</message>
<message>
<location filename="../IAbout.ui" line="175"/>
<source>Translation:</source>
- <translation type="unfinished"></translation>
+ <translation>Překlad:</translation>
</message>
<message>
<location filename="../IAbout.ui" line="182"/>
<source>Josef Latt</source>
- <translation type="unfinished"></translation>
+ <translation>Josef Latt</translation>
</message>
<message>
<location filename="../IAbout.ui" line="189"/>
<source>Spanish</source>
- <translation type="unfinished">Španělský</translation>
+ <translation>Španělština</translation>
</message>
<message>
<location filename="../IAbout.ui" line="196"/>
<source>Jose Luis Domingo Lopez</source>
- <translation type="unfinished"></translation>
+ <translation>Jose Luis Domingo Lopez</translation>
</message>
<message>
<location filename="../IAbout.ui" line="212"/>
@@ -1950,6 +1955,21 @@ není platným vymezením soustavy souřadnic
<source>...</source>
<translation>...</translation>
</message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+ <source>Scales</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+ <source>Logarithmic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+ <source>Square (optimized for TMS and WTMS tiles)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ICombineTrk</name>
@@ -2212,7 +2232,7 @@ není platným vymezením soustavy souřadnic
<message>
<location filename="../gis/prj/IDetailsPrj.ui" line="99"/>
<source>Sort Along Track</source>
- <translation type="unfinished"></translation>
+ <translation>Třídit podle stopy</translation>
</message>
<message>
<location filename="../gis/prj/IDetailsPrj.ui" line="127"/>
@@ -2247,104 +2267,105 @@ není platným vymezením soustavy souřadnic
<message>
<location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
<location filename="../gis/trk/IDetailsTrk.ui" line="77"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="98"/>
<source>-
-</source>
<translation>-
-</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="182"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
<source>Graph Control</source>
- <translation type="unfinished"></translation>
+ <translation>Ovládání grafu</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="224"/>
<source>Profile</source>
<translation>Profil</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="210"/>
- <location filename="../gis/trk/IDetailsTrk.ui" line="446"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="231"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="467"/>
<source>Speed</source>
<translation>Rychlost</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="217"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="238"/>
<source>Progress</source>
<translation>Postup</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="227"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="248"/>
<source>Track</source>
- <translation type="unfinished"></translation>
+ <translation>Stopa</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="253"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="274"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="378"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="399"/>
<source>Points</source>
<translation>Body</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="426"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="447"/>
<source>Time</source>
<translation>Čas</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="431"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="452"/>
<source>Ele.</source>
<translation>Výška</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
<source>Delta</source>
<translation>Rozdíl</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="441"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="462"/>
<source>Dist.</source>
<translation>Vzdál.</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="472"/>
<source>Slope</source>
<translation>Sklon</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="456"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="477"/>
<source>Ascend</source>
<translation>Stoupání</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="461"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
<source>Descend</source>
<translation>Klesání</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="466"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="487"/>
<source>Position</source>
<translation>Poloha</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="350"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="371"/>
<source>Info</source>
<translation>Informace</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="308"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="329"/>
<source>-</source>
<translation>-</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="475"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="496"/>
<source>Filter</source>
<translation>Filtr</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="512"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="533"/>
<source>Hist.</source>
<translation>Hist.</translation>
</message>
@@ -3071,32 +3092,32 @@ není platným vymezením soustavy souřadnic
<message>
<location filename="../IMainWindow.ui" line="495"/>
<source>Store Map View</source>
- <translation type="unfinished"></translation>
+ <translation>Uložit pohled na mapu</translation>
</message>
<message>
<location filename="../IMainWindow.ui" line="498"/>
<source>Write current active map and DEM list including the properties to a file</source>
- <translation type="unfinished"></translation>
+ <translation>Zapsat nynější činnou mapu a seznam DEM včetně vlastností do souboru</translation>
</message>
<message>
<location filename="../IMainWindow.ui" line="507"/>
<source>Load Map View</source>
- <translation type="unfinished"></translation>
+ <translation>Nahrát pohled na mapu</translation>
</message>
<message>
<location filename="../IMainWindow.ui" line="510"/>
<source>Restore view with active map and DEM list including the properties from a file</source>
- <translation type="unfinished"></translation>
+ <translation>Obnovit pohled s činnou mapou a seznam DEM včetně vlastností ze souboru</translation>
</message>
<message>
<location filename="../IMainWindow.ui" line="522"/>
<source>Ext. Profile</source>
- <translation type="unfinished"></translation>
+ <translation>Ext. Profil</translation>
</message>
<message>
<location filename="../IMainWindow.ui" line="525"/>
<source>Ctrl+E</source>
- <translation type="unfinished">Ctrl+E</translation>
+ <translation>Ctrl+E</translation>
</message>
<message>
<source>Setup Database</source>
@@ -3125,7 +3146,13 @@ není platným vymezením soustavy souřadnic
<translation>Použijte související nabídku (klepnutí pravým tlačítkem myši na položku) pro zapnutí mapy. Použijte přetažení a upuštění pro posunutí zapnuté mapy v pořadí kreslení. </translation>
</message>
<message>
- <location filename="../map/IMapList.ui" line="141"/>
+ <location filename="../map/IMapList.ui" line="129"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../map/IMapList.ui" line="149"/>
<source>Activate</source>
<translation>Zapnout</translation>
</message>
@@ -3140,7 +3167,7 @@ není platným vymezením soustavy souřadnic
<message>
<location filename="../map/IMapPathSetup.ui" line="20"/>
<source>Root path of tile cache for online maps:</source>
- <translation type="unfinished"></translation>
+ <translation>Kořenová cesta (root) vyrovnávací paměti dlaždic pro internetové mapy:</translation>
</message>
<message>
<location filename="../map/IMapPathSetup.ui" line="36"/>
@@ -3150,6 +3177,12 @@ není platným vymezením soustavy souřadnic
<translation>...</translation>
</message>
<message>
+ <location filename="../map/IMapPathSetup.ui" line="185"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../map/IMapPathSetup.ui" line="29"/>
<location filename="../map/IMapPathSetup.ui" line="135"/>
<source>-</source>
@@ -3212,7 +3245,7 @@ není platným vymezením soustavy souřadnic
<message>
<location filename="../map/IMapPropSetup.ui" line="240"/>
<source>Cache Path</source>
- <translation type="unfinished"></translation>
+ <translation>Cesta k vyrovnávací paměti</translation>
</message>
<message>
<location filename="../map/IMapPropSetup.ui" line="196"/>
@@ -3262,22 +3295,22 @@ není platným vymezením soustavy souřadnic
<context>
<name>IMouseEditLine</name>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points?</source>
<translation>Přidat body?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points to temporary line?</source>
<translation>Přidat body do dočasné čáry?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>Warning!</source>
<translation>Varování!</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>This will replace all data of the orignal by a simple line of coordinates. All other data will be lost permanently.</source>
<translation>Tímto budou všechny původní údaje nahrazeny jednoduchou čárou souřadnic. Všechna ostatní data budou trvale ztracena.</translation>
</message>
@@ -3299,19 +3332,24 @@ není platným vymezením soustavy souřadnic
<context>
<name>IPlot</name>
<message>
- <location filename="../plot/IPlot.cpp" line="101"/>
- <source>Save...</source>
+ <location filename="../plot/IPlot.cpp" line="108"/>
+ <source>Stop Range</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="500"/>
+ <location filename="../plot/IPlot.cpp" line="109"/>
+ <source>Save...</source>
+ <translation>Uložit...</translation>
+ </message>
+ <message>
+ <location filename="../plot/IPlot.cpp" line="602"/>
<source>No or bad data.</source>
<translation>Žádné nebo špatné údaje.</translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="1015"/>
+ <location filename="../plot/IPlot.cpp" line="1128"/>
<source>Select output file</source>
- <translation type="unfinished"></translation>
+ <translation>Vybrat výstupní soubor</translation>
</message>
</context>
<context>
@@ -3739,7 +3777,7 @@ nebo
<message>
<location filename="../gis/ISelDevices.ui" line="14"/>
<source>Select devices...</source>
- <translation type="unfinished"></translation>
+ <translation>Vybrat zařízení...</translation>
</message>
</context>
<context>
@@ -4217,34 +4255,44 @@ Areas: %1</source>
Oblasti: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>Save project?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>The project "%1" was changed. Save befor closing it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="255"/>
<source><br/>
Filename: %1</source>
<translation><br/>
Název souboru: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="256"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="272"/>
<source>Waypoints: %1</source>
<translation>Cestovní body: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="260"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="276"/>
<source>Tracks: %1</source>
<translation>Stopy: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="264"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="280"/>
<source>Routes: %1</source>
<translation>Cesty: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="268"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="284"/>
<source>Areas: %1</source>
<translation>Oblasti: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="329"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="345"/>
<source>Are you sure you want to delete '%1' from project '%2'?</source>
<translation>Jste si jistý, že chcete smazat '%1' z projektu '%2'?</translation>
</message>
@@ -4255,7 +4303,7 @@ Název souboru: %1</translation>
</message>
<message>
<location filename="../gis/CGisListDB.cpp" line="408"/>
- <location filename="../gis/prj/IGisProject.cpp" line="330"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="346"/>
<source>Delete...</source>
<translation>Smazat...</translation>
</message>
@@ -4366,63 +4414,99 @@ Název souboru: %1</translation>
<translation><p>--- žádné odkazy ---</p></translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
<source>Length: %1 %2</source>
<translation>Délka: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="409"/>
<source>, %1%2 %3, %4%5 %6</source>
<translation>, %1%2 %3, %4%5 %6</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
<source>Time: %1</source>
<translation>Čas: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="420"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
<source>, Speed: %1 %2</source>
<translation>, Rychlost: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="427"/>
<source>Moving: %1</source>
<translation>Pohyb: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
<source>Start: %1</source>
<translation>Začátek: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="441"/>
<source>End: %1</source>
<translation>Konec: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
<source>Points: %1 (%2)</source>
<translation>Body: %1 (%2)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="563"/>
<source>Ele.: %1 %2</source>
<translation>Výška: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="566"/>
<source> slope: %1%3 (%2%)</source>
<translation> sklon: %1%3 (%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
+ <source>Ascend: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="642"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="659"/>
+ <source>, %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+ <source>Ascend: -</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+ <source> Descend: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="664"/>
+ <source>Descend: -</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="670"/>
+ <source>Dist.: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="675"/>
+ <source> Time: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1334"/>
<source>Hide points.</source>
<translation>Skrýt body.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1380"/>
<source>Show points.</source>
<translation>Ukázat body.</translation>
</message>
@@ -4431,37 +4515,37 @@ Název souboru: %1</translation>
<translation type="obsolete"> sklon: %1°(%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="571"/>
<source> speed: %1%2</source>
<translation> rychlost: %1%2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="583"/>
<source>Ascend: %1%2 (%3%)</source>
<translation>Stoupání: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="587"/>
<source>Ascend: - (-)</source>
<translation>Stoupání: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="597"/>
<source> Descend: - (-) </source>
<translation> Klesání: - (-) </translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="618"/>
<source> Moving: - (-) </source>
<translation> Pohyb: - (-) </translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
<source> Descend: %1%2 (%3%)</source>
<translation> Klesání: %1%2 (%3%) </translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="326"/>
<source>Changed trackpoints, sacrificed all previous data.</source>
<translation>Změněny body stop. Obětována veškerá předchozí data.</translation>
</message>
@@ -4470,17 +4554,17 @@ Název souboru: %1</translation>
<translation type="obsolete"> sklon: %1° (%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="604"/>
<source>Dist.: %1%2 (%3%)</source>
<translation>Vzdálenost: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
<source>Dist.: - (-)</source>
<translation>Vzdálenost: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="614"/>
<source> Moving: %1%2 (%3%)</source>
<translation> Pohyb: %1%2 (%3%) </translation>
</message>
@@ -4507,7 +4591,7 @@ Název souboru: %1</translation>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="142"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="45"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="184"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
<source>_Clone</source>
<translation>_Klon</translation>
@@ -4555,14 +4639,14 @@ Název souboru: %1</translation>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="520"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="139"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1739"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="376"/>
<source>Changed links</source>
<translation>Změněné odkazy</translation>
</message>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="532"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1751"/>
<source>Changed color</source>
<translation>Změněná barva</translation>
</message>
@@ -4577,17 +4661,17 @@ Název souboru: %1</translation>
<translation>Blízkost: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1721"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="324"/>
<source>Changed name</source>
<translation>Změněný název</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="190"/>
<location filename="../mouse/CMouseEditArea.cpp" line="100"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
@@ -4631,14 +4715,14 @@ Název souboru: %1</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1727"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="364"/>
<source>Changed comment</source>
<translation>Změněná poznámka</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="133"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1733"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
<source>Changed description</source>
<translation>Změněný popis</translation>
@@ -4675,11 +4759,11 @@ Název souboru: %1</translation>
<translation>Toto je souborový typ s neznámým druhem čáry. Nahlašte to, prosím!</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
<source>Enter new track name.</source>
<translation>Zadat název nové stopy.</translation>
@@ -4786,12 +4870,12 @@ Název souboru: %1</translation>
<translation>Rychlost změněna na %1%2.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Delete project...</source>
<translation>Smazat projekt...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Do you really want to delete %1?</source>
<translation>Opravdu chcete smazat %1?</translation>
</message>
@@ -4799,16 +4883,16 @@ Název souboru: %1</translation>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Error...</source>
<translation>Chyba...</translation>
</message>
@@ -4816,31 +4900,36 @@ Název souboru: %1</translation>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
<source>Failed to open %1.</source>
<translation>Nepodařilo se otevřít %1.</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
<source>Only support lon/lat WGS 84 format.</source>
<translation>Jako formát je podporován jen lon/lat WGS 84.</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Failed to read data.</source>
<translation>Nepodařilo se přečíst data.</translation>
</message>
<message>
- <location filename="../device/CDeviceGarmin.cpp" line="202"/>
+ <location filename="../device/CDeviceGarmin.cpp" line="207"/>
<source>Picture%1</source>
<translation>Obrázek %1</translation>
</message>
+ <message>
+ <location filename="../device/IDevice.cpp" line="202"/>
+ <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/locale/qmapshack_de.ts b/src/locale/qmapshack_de.ts
index 32e276e..3717682 100644
--- a/src/locale/qmapshack_de.ts
+++ b/src/locale/qmapshack_de.ts
@@ -187,17 +187,17 @@
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="480"/>
<source>distance: %1%2</source>
- <translation>Entfernung: %1%2</translation>
+ <translation>Entfernung: %1 %2</translation>
</message>
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="482"/>
<source>ascent: %1%2</source>
- <translation>Anstieg: %1%2</translation>
+ <translation>Anstieg: %1 %2</translation>
</message>
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="484"/>
<source>descend: %1%2</source>
- <translation>Abstieg: %1%2</translation>
+ <translation>Abstieg: %1 %2</translation>
</message>
<message>
<location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
@@ -254,22 +254,22 @@
<translation>Track in Stücke teilen</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="230"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="236"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="255"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="257"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="222"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="231"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="234"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="240"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="259"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="261"/>
<source>%1 %2</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Edit name...</source>
<translation>Name bearbeiten...</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Enter new track name.</source>
<translation>Geben Sie einen neuen Namen für den Track ein.</translation>
</message>
@@ -474,8 +474,8 @@
</message>
<message>
<location filename="../gis/CGisListWks.cpp" line="586"/>
- <location filename="../gis/CGisListWks.cpp" line="1237"/>
- <location filename="../gis/CGisListWks.cpp" line="1275"/>
+ <location filename="../gis/CGisListWks.cpp" line="1253"/>
+ <location filename="../gis/CGisListWks.cpp" line="1292"/>
<source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
<translation><b>Aktualisieren der Geräte</b><p>Aktualisiere %1<br/>Bitte warten...</p></translation>
</message>
@@ -540,12 +540,12 @@
<translation>Ansicht laden. Bitte warten.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>Close all projects...</source>
<translation>Alle Projekte schließen...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>This will remove all projects from the workspace.</source>
<translation>Dies wird alle Projekte aus der Ansicht entfernen.</translation>
</message>
@@ -625,22 +625,22 @@
<context>
<name>CMainWindow</name>
<message>
- <location filename="../CMainWindow.cpp" line="476"/>
+ <location filename="../CMainWindow.cpp" line="485"/>
<source>Ele: %1%2</source>
<translation>Höhe: %1%2</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="602"/>
+ <location filename="../CMainWindow.cpp" line="611"/>
<source>Load GIS Data...</source>
<translation>GIS Daten laden...</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="636"/>
+ <location filename="../CMainWindow.cpp" line="645"/>
<source>Select output file</source>
<translation>Ausgabedatei auswählen</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="662"/>
+ <location filename="../CMainWindow.cpp" line="671"/>
<source>Select file to load</source>
<translation>Zu ladende Datei auswählen</translation>
</message>
@@ -648,631 +648,631 @@
<context>
<name>CMapIMG</name>
<message>
- <location filename="../map/CMapIMG.cpp" line="151"/>
+ <location filename="../map/CMapIMG.cpp" line="153"/>
<source>Failed ...</source>
<translation>Fehlgeschlagen...</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="166"/>
+ <location filename="../map/CMapIMG.cpp" line="168"/>
<source>Unspecified</source>
<translation>Nicht angegeben</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="167"/>
+ <location filename="../map/CMapIMG.cpp" line="169"/>
<source>French</source>
<translation>Französisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="168"/>
+ <location filename="../map/CMapIMG.cpp" line="170"/>
<source>German</source>
<translation>Deutsch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="169"/>
+ <location filename="../map/CMapIMG.cpp" line="171"/>
<source>Dutch</source>
<translation>Niederländisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="170"/>
+ <location filename="../map/CMapIMG.cpp" line="172"/>
<source>English</source>
<translation>Englisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="171"/>
+ <location filename="../map/CMapIMG.cpp" line="173"/>
<source>Italian</source>
<translation>Italienisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="172"/>
+ <location filename="../map/CMapIMG.cpp" line="174"/>
<source>Finnish</source>
<translation>Finnisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="173"/>
+ <location filename="../map/CMapIMG.cpp" line="175"/>
<source>Swedish</source>
<translation>Schwedisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="174"/>
+ <location filename="../map/CMapIMG.cpp" line="176"/>
<source>Spanish</source>
<translation>Spanisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="175"/>
+ <location filename="../map/CMapIMG.cpp" line="177"/>
<source>Basque</source>
<translation>Baskisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="176"/>
+ <location filename="../map/CMapIMG.cpp" line="178"/>
<source>Catalan</source>
<translation>Catalanisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="177"/>
+ <location filename="../map/CMapIMG.cpp" line="179"/>
<source>Galician</source>
<translation>Galizisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="178"/>
+ <location filename="../map/CMapIMG.cpp" line="180"/>
<source>Welsh</source>
<translation>Walisisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="179"/>
+ <location filename="../map/CMapIMG.cpp" line="181"/>
<source>Gaelic</source>
<translation>Gälisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="180"/>
+ <location filename="../map/CMapIMG.cpp" line="182"/>
<source>Danish</source>
<translation>Dänisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="181"/>
+ <location filename="../map/CMapIMG.cpp" line="183"/>
<source>Norwegian</source>
<translation>Norwegisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="182"/>
+ <location filename="../map/CMapIMG.cpp" line="184"/>
<source>Portuguese</source>
<translation>Portugiesisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="183"/>
+ <location filename="../map/CMapIMG.cpp" line="185"/>
<source>Slovak</source>
<translation>Slovakisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="184"/>
+ <location filename="../map/CMapIMG.cpp" line="186"/>
<source>Czech</source>
<translation>Tschechisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="185"/>
+ <location filename="../map/CMapIMG.cpp" line="187"/>
<source>Croatian</source>
<translation>Kroatisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="186"/>
+ <location filename="../map/CMapIMG.cpp" line="188"/>
<source>Hungarian</source>
<translation>Ungarisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="187"/>
+ <location filename="../map/CMapIMG.cpp" line="189"/>
<source>Polish</source>
<translation>Polnisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="188"/>
+ <location filename="../map/CMapIMG.cpp" line="190"/>
<source>Turkish</source>
<translation>Türkisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="189"/>
+ <location filename="../map/CMapIMG.cpp" line="191"/>
<source>Greek</source>
<translation>Griechisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="190"/>
+ <location filename="../map/CMapIMG.cpp" line="192"/>
<source>Slovenian</source>
<translation>Slowenisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="191"/>
+ <location filename="../map/CMapIMG.cpp" line="193"/>
<source>Russian</source>
<translation>Russisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="192"/>
+ <location filename="../map/CMapIMG.cpp" line="194"/>
<source>Estonian</source>
<translation>Estnisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="193"/>
+ <location filename="../map/CMapIMG.cpp" line="195"/>
<source>Latvian</source>
<translation>Lettisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="194"/>
+ <location filename="../map/CMapIMG.cpp" line="196"/>
<source>Romanian</source>
<translation>Rumänisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="195"/>
+ <location filename="../map/CMapIMG.cpp" line="197"/>
<source>Albanian</source>
<translatorcomment>Albanisch</translatorcomment>
<translation>Albanisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="196"/>
+ <location filename="../map/CMapIMG.cpp" line="198"/>
<source>Bosnian</source>
<translation>Bosnisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="197"/>
+ <location filename="../map/CMapIMG.cpp" line="199"/>
<source>Lithuanian</source>
<translation>Litauisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="198"/>
+ <location filename="../map/CMapIMG.cpp" line="200"/>
<source>Serbian</source>
<translation>Serbisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="199"/>
+ <location filename="../map/CMapIMG.cpp" line="201"/>
<source>Macedonian</source>
<translation>Makedonisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="200"/>
+ <location filename="../map/CMapIMG.cpp" line="202"/>
<source>Bulgarian</source>
<translation>Bulgarisch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="257"/>
+ <location filename="../map/CMapIMG.cpp" line="259"/>
<source>Major highway</source>
<translation>Autobahn</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="258"/>
+ <location filename="../map/CMapIMG.cpp" line="260"/>
<source>Principal highway</source>
<translation>Bundesstraße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="259"/>
+ <location filename="../map/CMapIMG.cpp" line="261"/>
<source>Other highway</source>
<translation>Schnellstraße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="260"/>
+ <location filename="../map/CMapIMG.cpp" line="262"/>
<source>Arterial road</source>
<translation>Fernstraße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="261"/>
+ <location filename="../map/CMapIMG.cpp" line="263"/>
<source>Collector road</source>
<translation>Sammelstraße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="262"/>
+ <location filename="../map/CMapIMG.cpp" line="264"/>
<source>Residential street</source>
<translation>Wohnstraße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="263"/>
+ <location filename="../map/CMapIMG.cpp" line="265"/>
<source>Alley/Private road</source>
<translation>Allee/Privatstraße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="264"/>
+ <location filename="../map/CMapIMG.cpp" line="266"/>
<source>Highway ramp, low speed</source>
<translation>Auffahrt (langsam)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="265"/>
+ <location filename="../map/CMapIMG.cpp" line="267"/>
<source>Highway ramp, high speed</source>
<translation>Auffahrt (schnell)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="266"/>
+ <location filename="../map/CMapIMG.cpp" line="268"/>
<source>Unpaved road</source>
<translation>Unbefestigte Straße</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="267"/>
+ <location filename="../map/CMapIMG.cpp" line="269"/>
<source>Major highway connector</source>
<translation>Autobahnzubringer</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="268"/>
+ <location filename="../map/CMapIMG.cpp" line="270"/>
<source>Roundabout</source>
<translation>Kreisverkehr</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="269"/>
+ <location filename="../map/CMapIMG.cpp" line="271"/>
<source>Railroad</source>
<translation>Eisenbahn</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="270"/>
+ <location filename="../map/CMapIMG.cpp" line="272"/>
<source>Shoreline</source>
<translation>Küstenlinie</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="271"/>
+ <location filename="../map/CMapIMG.cpp" line="273"/>
<source>Trail</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="272"/>
+ <location filename="../map/CMapIMG.cpp" line="274"/>
<source>Stream</source>
<translation>Bach</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="273"/>
+ <location filename="../map/CMapIMG.cpp" line="275"/>
<source>Time zone</source>
<translation>Zeitzone</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="274"/>
- <location filename="../map/CMapIMG.cpp" line="275"/>
+ <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="277"/>
<source>Ferry</source>
<translation>Fähre</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="278"/>
<source>State/province border</source>
<translation>Staats-/Landesgrenze</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="277"/>
+ <location filename="../map/CMapIMG.cpp" line="279"/>
<source>County/parish border</source>
<translation>Kreis-/Gemeindegrenze</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="278"/>
+ <location filename="../map/CMapIMG.cpp" line="280"/>
<source>International border</source>
<translation>Internationale Grenze</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="279"/>
+ <location filename="../map/CMapIMG.cpp" line="281"/>
<source>River</source>
<translation>Fluss</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="280"/>
+ <location filename="../map/CMapIMG.cpp" line="282"/>
<source>Minor land contour</source>
<translation>Höhenlinie klein</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="281"/>
+ <location filename="../map/CMapIMG.cpp" line="283"/>
<source>Intermediate land contour</source>
<translation>Höhenlinie mittel</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="282"/>
+ <location filename="../map/CMapIMG.cpp" line="284"/>
<source>Major land contour</source>
<translation>Höhenlinie groß</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="283"/>
+ <location filename="../map/CMapIMG.cpp" line="285"/>
<source>Minor depth contour</source>
<translation>Tiefenlinie klein</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="284"/>
+ <location filename="../map/CMapIMG.cpp" line="286"/>
<source>Intermediate depth contour</source>
<translation>Tiefenlinie mittel</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="285"/>
+ <location filename="../map/CMapIMG.cpp" line="287"/>
<source>Major depth contour</source>
<translation>Tiefenlinie groß</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="286"/>
+ <location filename="../map/CMapIMG.cpp" line="288"/>
<source>Intermittent stream</source>
<translation>Intermittierender Bach</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="287"/>
- <location filename="../map/CMapIMG.cpp" line="369"/>
+ <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="371"/>
<source>Airport runway</source>
<translation>Landebahn</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="288"/>
+ <location filename="../map/CMapIMG.cpp" line="290"/>
<source>Pipeline</source>
<translation>Pipeline</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="291"/>
<source>Powerline</source>
<translation>Stromleitung</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="290"/>
+ <location filename="../map/CMapIMG.cpp" line="292"/>
<source>Marine boundary</source>
<translation>Meeresgrenze</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="291"/>
+ <location filename="../map/CMapIMG.cpp" line="293"/>
<source>Hazard boundary</source>
<translation>Gefahrbereichgrenze</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="356"/>
+ <location filename="../map/CMapIMG.cpp" line="358"/>
<source>Large urban area (>200K)</source>
<translation>Großes Wohngebiet (>200K)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="357"/>
+ <location filename="../map/CMapIMG.cpp" line="359"/>
<source>Small urban area (<200K)</source>
<translation>Kleines Wohngebiet (<200K)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="358"/>
+ <location filename="../map/CMapIMG.cpp" line="360"/>
<source>Rural housing area</source>
<translation>Ländliches Wohngebiet</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="359"/>
+ <location filename="../map/CMapIMG.cpp" line="361"/>
<source>Military base</source>
<translation>Militärbasis</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="360"/>
+ <location filename="../map/CMapIMG.cpp" line="362"/>
<source>Parking lot</source>
<translation>Parkplatz</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="361"/>
+ <location filename="../map/CMapIMG.cpp" line="363"/>
<source>Parking garage</source>
<translation>Parkhaus</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="362"/>
+ <location filename="../map/CMapIMG.cpp" line="364"/>
<source>Airport</source>
<translation>Flugplatz</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="363"/>
+ <location filename="../map/CMapIMG.cpp" line="365"/>
<source>Shopping center</source>
<translation>Einkaufszentrum</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="364"/>
+ <location filename="../map/CMapIMG.cpp" line="366"/>
<source>Marina</source>
<translation>Jachthafen</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="365"/>
+ <location filename="../map/CMapIMG.cpp" line="367"/>
<source>University/College</source>
<translation>Universität/Hochschule</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="366"/>
+ <location filename="../map/CMapIMG.cpp" line="368"/>
<source>Hospital</source>
<translation>Krankenhaus</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="367"/>
+ <location filename="../map/CMapIMG.cpp" line="369"/>
<source>Industrial complex</source>
<translation>Industrie</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="368"/>
+ <location filename="../map/CMapIMG.cpp" line="370"/>
<source>Reservation</source>
<translation>Schutzgebiet</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="370"/>
+ <location filename="../map/CMapIMG.cpp" line="372"/>
<source>Man-made area</source>
<translation>Fabrikgelände</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="371"/>
+ <location filename="../map/CMapIMG.cpp" line="373"/>
<source>Sports complex</source>
<translation>Sportanlage</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="372"/>
+ <location filename="../map/CMapIMG.cpp" line="374"/>
<source>Golf course</source>
<translation>Golfplatz</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="373"/>
+ <location filename="../map/CMapIMG.cpp" line="375"/>
<source>Cemetery</source>
<translation>Friedhof</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="374"/>
- <location filename="../map/CMapIMG.cpp" line="375"/>
<location filename="../map/CMapIMG.cpp" line="376"/>
+ <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="378"/>
<source>National park</source>
<translation>Nationalpark</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="379"/>
<source>City park</source>
<translation>Stadtpark</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="378"/>
- <location filename="../map/CMapIMG.cpp" line="379"/>
<location filename="../map/CMapIMG.cpp" line="380"/>
+ <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="382"/>
<source>State park</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="383"/>
<source>Forest</source>
<translation>Wald</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="382"/>
+ <location filename="../map/CMapIMG.cpp" line="384"/>
<source>Ocean</source>
<translation>Ozean</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="383"/>
<location filename="../map/CMapIMG.cpp" line="385"/>
- <location filename="../map/CMapIMG.cpp" line="395"/>
+ <location filename="../map/CMapIMG.cpp" line="387"/>
+ <location filename="../map/CMapIMG.cpp" line="397"/>
<source>Blue (unknown)</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="384"/>
+ <location filename="../map/CMapIMG.cpp" line="386"/>
<source>Sea</source>
<translation>Meer</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="386"/>
- <location filename="../map/CMapIMG.cpp" line="387"/>
- <location filename="../map/CMapIMG.cpp" line="394"/>
- <source>Large lake</source>
- <translation>See</translation>
- </message>
- <message>
<location filename="../map/CMapIMG.cpp" line="388"/>
<location filename="../map/CMapIMG.cpp" line="389"/>
- <source>Medium lake</source>
+ <location filename="../map/CMapIMG.cpp" line="396"/>
+ <source>Large lake</source>
<translation>See</translation>
</message>
<message>
<location filename="../map/CMapIMG.cpp" line="390"/>
<location filename="../map/CMapIMG.cpp" line="391"/>
- <source>Small lake</source>
+ <source>Medium lake</source>
<translation>See</translation>
</message>
<message>
<location filename="../map/CMapIMG.cpp" line="392"/>
<location filename="../map/CMapIMG.cpp" line="393"/>
+ <source>Small lake</source>
+ <translation>See</translation>
+ </message>
+ <message>
+ <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="395"/>
<source>Major lake</source>
<translation>See</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="396"/>
+ <location filename="../map/CMapIMG.cpp" line="398"/>
<source>Major River</source>
<translation>Strom</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="397"/>
+ <location filename="../map/CMapIMG.cpp" line="399"/>
<source>Large River</source>
<translation>Fluss</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="398"/>
+ <location filename="../map/CMapIMG.cpp" line="400"/>
<source>Medium River</source>
<translation>Fluss</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="399"/>
+ <location filename="../map/CMapIMG.cpp" line="401"/>
<source>Small River</source>
<translation>Fluss</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="402"/>
+ <location filename="../map/CMapIMG.cpp" line="404"/>
<source>Intermittent water</source>
<translation>Gewässer</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="403"/>
+ <location filename="../map/CMapIMG.cpp" line="405"/>
<source>Wetland/Swamp</source>
<translation>Feuchtgebiet/Sumpf</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="404"/>
+ <location filename="../map/CMapIMG.cpp" line="406"/>
<source>Glacier</source>
<translation>Gletscher</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="405"/>
+ <location filename="../map/CMapIMG.cpp" line="407"/>
<source>Orchard/Plantation</source>
<translation>Obstgarten/Plantage</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="406"/>
+ <location filename="../map/CMapIMG.cpp" line="408"/>
<source>Scrub</source>
<translation>Buschwerk</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="407"/>
+ <location filename="../map/CMapIMG.cpp" line="409"/>
<source>Tundra</source>
<translation>Tundra</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="408"/>
+ <location filename="../map/CMapIMG.cpp" line="410"/>
<source>Flat</source>
<translation>Ebene</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="409"/>
+ <location filename="../map/CMapIMG.cpp" line="411"/>
<source>???</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="445"/>
+ <location filename="../map/CMapIMG.cpp" line="447"/>
<source>Failed to read: </source>
<translation>Lesen fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="488"/>
+ <location filename="../map/CMapIMG.cpp" line="490"/>
<source>Failed to open: </source>
<translation>Öffnen fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="512"/>
- <location filename="../map/CMapIMG.cpp" line="516"/>
+ <location filename="../map/CMapIMG.cpp" line="514"/>
+ <location filename="../map/CMapIMG.cpp" line="518"/>
<source>Bad file format: </source>
<translation>Falsches Format:</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="605"/>
+ <location filename="../map/CMapIMG.cpp" line="607"/>
<source>Failed to read file structure: </source>
<translation>Lesen der Dateistruktur fehlgeschlagen:</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="638"/>
+ <location filename="../map/CMapIMG.cpp" line="640"/>
<source>Loading %1</source>
<translation>Lädt %1</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="643"/>
+ <location filename="../map/CMapIMG.cpp" line="645"/>
<source>User abort: </source>
<translation>Benutzerabbruch:</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="646"/>
+ <location filename="../map/CMapIMG.cpp" line="648"/>
<source>File is NT format. QMapShack is unable to read map files with NT format: </source>
<translation>Die Datei hat das NT Format. QMapShack kann dieses Format nicht lesen:</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="738"/>
+ <location filename="../map/CMapIMG.cpp" line="740"/>
<source>File contains locked / encypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
<translation>Die Datei enthält verschlüsselte Daten. Garmin möchte nicht dass diese Datei mit einer anderen Software, als der von Garmin bereitgestellten, benutzt wird.</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2475"/>
- <location filename="../map/CMapIMG.cpp" line="2483"/>
- <location filename="../map/CMapIMG.cpp" line="2487"/>
- <location filename="../map/CMapIMG.cpp" line="2492"/>
- <location filename="../map/CMapIMG.cpp" line="2538"/>
- <location filename="../map/CMapIMG.cpp" line="2546"/>
- <location filename="../map/CMapIMG.cpp" line="2550"/>
- <location filename="../map/CMapIMG.cpp" line="2555"/>
+ <location filename="../map/CMapIMG.cpp" line="2494"/>
+ <location filename="../map/CMapIMG.cpp" line="2502"/>
+ <location filename="../map/CMapIMG.cpp" line="2506"/>
+ <location filename="../map/CMapIMG.cpp" line="2511"/>
+ <location filename="../map/CMapIMG.cpp" line="2557"/>
+ <location filename="../map/CMapIMG.cpp" line="2565"/>
+ <location filename="../map/CMapIMG.cpp" line="2569"/>
+ <location filename="../map/CMapIMG.cpp" line="2574"/>
<source>Point of Interest</source>
<translation>Ort von Interesse</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2682"/>
+ <location filename="../map/CMapIMG.cpp" line="2701"/>
<source>Unknown</source>
<translation>Unbekannt</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2728"/>
- <location filename="../map/CMapIMG.cpp" line="2736"/>
- <location filename="../map/CMapIMG.cpp" line="2743"/>
+ <location filename="../map/CMapIMG.cpp" line="2747"/>
+ <location filename="../map/CMapIMG.cpp" line="2755"/>
+ <location filename="../map/CMapIMG.cpp" line="2762"/>
<source>Area</source>
<translation>Gebiet</translation>
</message>
@@ -1280,15 +1280,20 @@
<context>
<name>CMapList</name>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Deactivate</source>
<translation>Deaktivieren</translation>
</message>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Activate</source>
<translation>Aktivieren</translation>
</message>
+ <message>
+ <location filename="../map/CMapList.cpp" line="174"/>
+ <source>Where do you want to store maps?</source>
+ <translation>Wo wollen Sie die Karten speichern?</translation>
+ </message>
</context>
<context>
<name>CMapMAP</name>
@@ -1311,17 +1316,17 @@
<context>
<name>CMapPathSetup</name>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="45"/>
+ <location filename="../map/CMapPathSetup.cpp" line="47"/>
<source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
<translation>Hinzufügen oder Entfernen von Karten. In einem Verzeichnis können mehrere Karten liegen. Unterverzeichnisse werden jedoch nicht durchsucht. Unterstützte Formate sind: %1 </translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="60"/>
+ <location filename="../map/CMapPathSetup.cpp" line="62"/>
<source>Select map path...</source>
<translation>Kartenpfad wählen...</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="76"/>
+ <location filename="../map/CMapPathSetup.cpp" line="78"/>
<source>Select root path...</source>
<translation>Hauptverzeichnis auswählen...</translation>
</message>
@@ -1562,22 +1567,22 @@ Unbekannte Struktur.</translation>
<context>
<name>CMouseNormal</name>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="43"/>
<source>Add Waypoint</source>
<translation>Wegpunkt hinzufügen</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="44"/>
<source>Add Track</source>
<translation>Track hinzufügen</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="45"/>
<source>Add Area</source>
<translation>Gebiet hinzufügen</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="47"/>
<source>Copy position</source>
<translation>Position kopieren</translation>
</message>
@@ -2033,6 +2038,21 @@ ist keine gültige Koordinatensystemdefinition:
<source>...</source>
<translation></translation>
</message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+ <source>Scales</source>
+ <translation>Skalierung</translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+ <source>Logarithmic</source>
+ <translation>Logarithmisch</translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+ <source>Square (optimized for TMS and WTMS tiles)</source>
+ <translation>Quadratisch (optimal für TMS und WMTS Karten)</translation>
+ </message>
</context>
<context>
<name>ICombineTrk</name>
@@ -2079,7 +2099,7 @@ ist keine gültige Koordinatensystemdefinition:
<message>
<location filename="../dem/IDemPropSetup.ui" line="35"/>
<source><html><head/><body><p>Change opacity of map</p></body></html></source>
- <translation><html><head/><body><p>Ändert die Transparenz der Karte</p></body></html></translation>
+ <translation><html><head/><body><p>Ändert die Deckkraft der Karte</p></body></html></translation>
</message>
<message>
<location filename="../dem/IDemPropSetup.ui" line="50"/>
@@ -2330,103 +2350,104 @@ ist keine gültige Koordinatensystemdefinition:
<message>
<location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
<location filename="../gis/trk/IDetailsTrk.ui" line="77"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="98"/>
<source>-
-</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="182"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
<source>Graph Control</source>
<translation>Grafikeinstellungen</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="224"/>
<source>Profile</source>
<translation>Profil</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="210"/>
- <location filename="../gis/trk/IDetailsTrk.ui" line="446"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="231"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="467"/>
<source>Speed</source>
<translation>Geschw.</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="217"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="238"/>
<source>Progress</source>
<translation>Verlauf</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="227"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="248"/>
<source>Track</source>
<translation>Track</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="253"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="274"/>
<source>...</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="378"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="399"/>
<source>Points</source>
<translation>Punkte</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="426"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="447"/>
<source>Time</source>
<translation>Zeit</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="431"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="452"/>
<source>Ele.</source>
<translation>Höhe</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
<source>Delta</source>
<translation>Delta</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="441"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="462"/>
<source>Dist.</source>
<translation>Entf.</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="472"/>
<source>Slope</source>
<translation>Steigung</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="456"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="477"/>
<source>Ascend</source>
<translation>Anstieg</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="461"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
<source>Descend</source>
<translation>Abstieg</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="466"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="487"/>
<source>Position</source>
<translation>Position</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="350"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="371"/>
<source>Info</source>
<translation>Info</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="308"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="329"/>
<source>-</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="475"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="496"/>
<source>Filter</source>
<translation>Filter</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="512"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="533"/>
<source>Hist.</source>
<translation>History</translation>
</message>
@@ -3223,7 +3244,14 @@ ist keine gültige Koordinatensystemdefinition:
<translation>Nutze das Kontextmenü ( Klick mit rechter Maustaste auf Eintrag), um eine Karte zu aktivieren. Nutze Ziehen u. Ablegen um die aktivierte Datei in der Reihenfolge der Ansicht zu verschieben.</translation>
</message>
<message>
- <location filename="../map/IMapList.ui" line="141"/>
+ <location filename="../map/IMapList.ui" line="129"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation>Hilfe! Ich will Karten!
+Keine Lust die Anleitung zu lesen!</translation>
+ </message>
+ <message>
+ <location filename="../map/IMapList.ui" line="149"/>
<source>Activate</source>
<translation>Aktivieren</translation>
</message>
@@ -3248,6 +3276,13 @@ ist keine gültige Koordinatensystemdefinition:
<translation></translation>
</message>
<message>
+ <location filename="../map/IMapPathSetup.ui" line="185"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation>Hilfe! Ich will Karten!
+Keine Lust die Anleitung zu lesen!</translation>
+ </message>
+ <message>
<location filename="../map/IMapPathSetup.ui" line="29"/>
<location filename="../map/IMapPathSetup.ui" line="135"/>
<source>-</source>
@@ -3360,22 +3395,22 @@ ist keine gültige Koordinatensystemdefinition:
<context>
<name>IMouseEditLine</name>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points?</source>
<translation>Punkte hinzufügen?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points to temporary line?</source>
<translation>Punkte zur temporären Linie hinzufügen?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>Warning!</source>
<translation>Warnung!</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>This will replace all data of the orignal by a simple line of coordinates. All other data will be lost permanently.</source>
<translation>Alle ursprünglichen Daten werden durch eine einfache Koordinatenlinie ersetzt. Alle anderen Daten sind dauerhaft verloren.</translation>
</message>
@@ -3397,17 +3432,22 @@ ist keine gültige Koordinatensystemdefinition:
<context>
<name>IPlot</name>
<message>
- <location filename="../plot/IPlot.cpp" line="101"/>
+ <location filename="../plot/IPlot.cpp" line="108"/>
+ <source>Stop Range</source>
+ <translation>Bereichsauswahl beenden</translation>
+ </message>
+ <message>
+ <location filename="../plot/IPlot.cpp" line="109"/>
<source>Save...</source>
<translation>Speichern ...</translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="500"/>
+ <location filename="../plot/IPlot.cpp" line="602"/>
<source>No or bad data.</source>
<translation>Keine oder schlechte Daten.</translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="1015"/>
+ <location filename="../plot/IPlot.cpp" line="1128"/>
<source>Select output file</source>
<translation>Ausgabedatei auswählen</translation>
</message>
@@ -4327,34 +4367,44 @@ Areas: %1</source>
<translation type="obsolete">Fläche: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>Save project?</source>
+ <translation>Projekt speichern?</translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>The project "%1" was changed. Save befor closing it?</source>
+ <translation>Das Projekt "%1" wurde geändert. Speichern bevor es geschlossen wird?</translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="255"/>
<source><br/>
Filename: %1</source>
<translation><br/>
Dateiname: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="256"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="272"/>
<source>Waypoints: %1</source>
<translation>Wegpunkte: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="260"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="276"/>
<source>Tracks: %1</source>
<translation>Tracks: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="264"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="280"/>
<source>Routes: %1</source>
<translation>Routen: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="268"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="284"/>
<source>Areas: %1</source>
<translation>Gebiete: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="329"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="345"/>
<source>Are you sure you want to delete '%1' from project '%2'?</source>
<translation>Sind Sie sicher, dass Sie '%1' aus dem Projekt '%2' löschen wollen? </translation>
</message>
@@ -4365,7 +4415,7 @@ Dateiname: %1</translation>
</message>
<message>
<location filename="../gis/CGisListDB.cpp" line="408"/>
- <location filename="../gis/prj/IGisProject.cpp" line="330"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="346"/>
<source>Delete...</source>
<translation>Löschen...</translation>
</message>
@@ -4427,72 +4477,108 @@ Dateiname: %1</translation>
<translation>Datei %1' konnte nicht gespeichert werden</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="326"/>
<source>Changed trackpoints, sacrificed all previous data.</source>
<translation>Wegpunkte geändert, alle vorherigen Daten sind verloren.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
<source>Length: %1 %2</source>
<translation>Länge: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="409"/>
<source>, %1%2 %3, %4%5 %6</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
<source>Time: %1</source>
<translation>Gesamtzeit: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="420"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
<source>, Speed: %1 %2</source>
<translation>, Geschw.: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="427"/>
<source>Moving: %1</source>
<translation>Zeit in Bew.: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
<source>Start: %1</source>
<translation>Beginn: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="441"/>
<source>End: %1</source>
<translation>Ende: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
<source>Points: %1 (%2)</source>
<translation>Punkte: %1 von %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="563"/>
<source>Ele.: %1 %2</source>
<translation>Höhe: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="566"/>
<source> slope: %1%3 (%2%)</source>
<translation>, Steigung: %1%3 (%2%)</translation>
</message>
<message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
+ <source>Ascend: %1%2</source>
+ <translation>Anstieg: %1 %2</translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="642"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="659"/>
+ <source>, %1%2</source>
+ <translation>, %1 %2</translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+ <source>Ascend: -</source>
+ <translation>Anstieg: -</translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+ <source> Descend: %1%2</source>
+ <translation> Abstieg: %1 %2</translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="664"/>
+ <source>Descend: -</source>
+ <translation>Abstieg: -</translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="670"/>
+ <source>Dist.: %1%2</source>
+ <translation>Entf.: %1 %2</translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="675"/>
+ <source> Time: %1%2</source>
+ <translation> Zeit: %1 %2</translation>
+ </message>
+ <message>
<source> slope: %1° (%2%)</source>
<translation type="obsolete"> Neigung: %1° (%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1334"/>
<source>Hide points.</source>
<translation>Punkte ausblenden.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1380"/>
<source>Show points.</source>
<translation>Punkte einblenden.</translation>
</message>
@@ -4501,47 +4587,47 @@ Dateiname: %1</translation>
<translation type="obsolete">Neigung: %1°(%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="571"/>
<source> speed: %1%2</source>
<translation>, Geschw.: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="583"/>
<source>Ascend: %1%2 (%3%)</source>
<translation>Anstieg: %1 %2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="587"/>
<source>Ascend: - (-)</source>
<translation>Anstieg: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
<source> Descend: %1%2 (%3%)</source>
<translation>, Abstieg: %1 %2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="597"/>
<source> Descend: - (-) </source>
<translation>, Abstieg: - (-) </translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="604"/>
<source>Dist.: %1%2 (%3%)</source>
<translation>Entf.: %1 %2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
<source>Dist.: - (-)</source>
<translation>Entf.: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="614"/>
<source> Moving: %1%2 (%3%)</source>
<translation>, Zeit in Bew.: %1 %2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="618"/>
<source> Moving: - (-) </source>
<translation>, Zeit in Bew.: - (-) </translation>
</message>
@@ -4568,7 +4654,7 @@ Dateiname: %1</translation>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="142"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="45"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="184"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
<source>_Clone</source>
<translation>_Klon</translation>
@@ -4616,23 +4702,23 @@ Dateiname: %1</translation>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="520"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="139"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1739"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="376"/>
<source>Changed links</source>
<translation>Geänderte Verknüpfungen</translation>
</message>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="532"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1751"/>
<source>Changed color</source>
<translation>Farbe geändert</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="190"/>
<location filename="../mouse/CMouseEditArea.cpp" line="100"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
@@ -4655,7 +4741,7 @@ Dateiname: %1</translation>
<translation>Abstand: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1721"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="324"/>
<source>Changed name</source>
<translation>Name geändert</translation>
@@ -4692,14 +4778,14 @@ Dateiname: %1</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1727"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="364"/>
<source>Changed comment</source>
<translation>Kommentar geändert</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="133"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1733"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
<source>Changed description</source>
<translation>Beschreibung geändert</translation>
@@ -4785,11 +4871,11 @@ Dateiname: %1</translation>
<translation><p>--- keine ---</p></translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
<source>Enter new track name.</source>
<translation>Geben Sie einen neuen Namen für den Track ein.</translation>
@@ -4900,12 +4986,12 @@ Dateiname: %1</translation>
<translation>Geschwindigkeit auf %1 %2 geändert.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Delete project...</source>
<translation>Projekt löschen...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Do you really want to delete %1?</source>
<translation>Sind Sie sicher, dass sie %1? löschen wollen?</translation>
</message>
@@ -4917,16 +5003,16 @@ Dateiname: %1</translation>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Error...</source>
<translation>Fehler...</translation>
</message>
@@ -4934,31 +5020,36 @@ Dateiname: %1</translation>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
<source>Failed to open %1.</source>
<translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
<source>Only support lon/lat WGS 84 format.</source>
<translation>Es wird nur lon/lat WGS 84 als Format unterstützt.</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Failed to read data.</source>
<translation>Datenlesen fehlgeschlagen.</translation>
</message>
<message>
- <location filename="../device/CDeviceGarmin.cpp" line="202"/>
+ <location filename="../device/CDeviceGarmin.cpp" line="207"/>
<source>Picture%1</source>
<translation>Bild %1</translation>
</message>
+ <message>
+ <location filename="../device/IDevice.cpp" line="202"/>
+ <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+ <translation>Es gibt schon ein Projekt mit dem selben Namen. Wenn Sie 'ok' drücken wird dieses entfernt und ersetzt.</translation>
+ </message>
</context>
</TS>
diff --git a/src/locale/qmapshack_es.ts b/src/locale/qmapshack_es.ts
index 25ebc1f..505999e 100644
--- a/src/locale/qmapshack_es.ts
+++ b/src/locale/qmapshack_es.ts
@@ -246,22 +246,22 @@
<translation>Dividir track en partes</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="230"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="236"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="255"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="257"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="222"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="231"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="234"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="240"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="259"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="261"/>
<source>%1 %2</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Edit name...</source>
<translation type="unfinished">Editar nombre...</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Enter new track name.</source>
<translation type="unfinished">Introduzca el nombre del nuevo track.</translation>
</message>
@@ -447,8 +447,8 @@
</message>
<message>
<location filename="../gis/CGisListWks.cpp" line="586"/>
- <location filename="../gis/CGisListWks.cpp" line="1237"/>
- <location filename="../gis/CGisListWks.cpp" line="1275"/>
+ <location filename="../gis/CGisListWks.cpp" line="1253"/>
+ <location filename="../gis/CGisListWks.cpp" line="1292"/>
<source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
<translation type="unfinished"><b>Actualizar dispositivos</b><p>Actualizar %1<br/>Por favor espere...</p></translation>
</message>
@@ -504,12 +504,12 @@
<translation>Cargando espacio de trabajo. Por favor espere.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>Close all projects...</source>
<translation>Cerrar todos los proyectos...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>This will remove all projects from the workspace.</source>
<translation>Esto quitará.todos los proyectos.del espacio de trabajo.</translation>
</message>
@@ -573,22 +573,22 @@
<context>
<name>CMainWindow</name>
<message>
- <location filename="../CMainWindow.cpp" line="476"/>
+ <location filename="../CMainWindow.cpp" line="485"/>
<source>Ele: %1%2</source>
<translation>Alt: %1%2</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="602"/>
+ <location filename="../CMainWindow.cpp" line="611"/>
<source>Load GIS Data...</source>
<translation>Cargar Datos GIS...</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="636"/>
+ <location filename="../CMainWindow.cpp" line="645"/>
<source>Select output file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="662"/>
+ <location filename="../CMainWindow.cpp" line="671"/>
<source>Select file to load</source>
<translation type="unfinished"></translation>
</message>
@@ -596,630 +596,630 @@
<context>
<name>CMapIMG</name>
<message>
- <location filename="../map/CMapIMG.cpp" line="151"/>
+ <location filename="../map/CMapIMG.cpp" line="153"/>
<source>Failed ...</source>
<translation>Falló ...</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="166"/>
+ <location filename="../map/CMapIMG.cpp" line="168"/>
<source>Unspecified</source>
<translation>No especificado</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="167"/>
+ <location filename="../map/CMapIMG.cpp" line="169"/>
<source>French</source>
<translation>Francés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="168"/>
+ <location filename="../map/CMapIMG.cpp" line="170"/>
<source>German</source>
<translation>Alemán</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="169"/>
+ <location filename="../map/CMapIMG.cpp" line="171"/>
<source>Dutch</source>
<translation>Holandés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="170"/>
+ <location filename="../map/CMapIMG.cpp" line="172"/>
<source>English</source>
<translation>Inglés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="171"/>
+ <location filename="../map/CMapIMG.cpp" line="173"/>
<source>Italian</source>
<translation>Italiano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="172"/>
+ <location filename="../map/CMapIMG.cpp" line="174"/>
<source>Finnish</source>
<translation>Finés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="173"/>
+ <location filename="../map/CMapIMG.cpp" line="175"/>
<source>Swedish</source>
<translation>Sueco</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="174"/>
+ <location filename="../map/CMapIMG.cpp" line="176"/>
<source>Spanish</source>
<translation>Español</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="175"/>
+ <location filename="../map/CMapIMG.cpp" line="177"/>
<source>Basque</source>
<translation>Euskera</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="176"/>
+ <location filename="../map/CMapIMG.cpp" line="178"/>
<source>Catalan</source>
<translation>Catalán</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="177"/>
+ <location filename="../map/CMapIMG.cpp" line="179"/>
<source>Galician</source>
<translation>Gallego</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="178"/>
+ <location filename="../map/CMapIMG.cpp" line="180"/>
<source>Welsh</source>
<translation>Galés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="179"/>
+ <location filename="../map/CMapIMG.cpp" line="181"/>
<source>Gaelic</source>
<translation>Gaélico</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="180"/>
+ <location filename="../map/CMapIMG.cpp" line="182"/>
<source>Danish</source>
<translation>Danés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="181"/>
+ <location filename="../map/CMapIMG.cpp" line="183"/>
<source>Norwegian</source>
<translation>Noruego</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="182"/>
+ <location filename="../map/CMapIMG.cpp" line="184"/>
<source>Portuguese</source>
<translation>Portugués</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="183"/>
+ <location filename="../map/CMapIMG.cpp" line="185"/>
<source>Slovak</source>
<translation>Eslovaco</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="184"/>
+ <location filename="../map/CMapIMG.cpp" line="186"/>
<source>Czech</source>
<translation>Checo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="185"/>
+ <location filename="../map/CMapIMG.cpp" line="187"/>
<source>Croatian</source>
<translation>Croata</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="186"/>
+ <location filename="../map/CMapIMG.cpp" line="188"/>
<source>Hungarian</source>
<translation>Húngaro</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="187"/>
+ <location filename="../map/CMapIMG.cpp" line="189"/>
<source>Polish</source>
<translation>Polaco</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="188"/>
+ <location filename="../map/CMapIMG.cpp" line="190"/>
<source>Turkish</source>
<translation>Turco</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="189"/>
+ <location filename="../map/CMapIMG.cpp" line="191"/>
<source>Greek</source>
<translation>Griego</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="190"/>
+ <location filename="../map/CMapIMG.cpp" line="192"/>
<source>Slovenian</source>
<translation>Esloveno</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="191"/>
+ <location filename="../map/CMapIMG.cpp" line="193"/>
<source>Russian</source>
<translation>Ruso</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="192"/>
+ <location filename="../map/CMapIMG.cpp" line="194"/>
<source>Estonian</source>
<translation>Estonio</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="193"/>
+ <location filename="../map/CMapIMG.cpp" line="195"/>
<source>Latvian</source>
<translation>Letón</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="194"/>
+ <location filename="../map/CMapIMG.cpp" line="196"/>
<source>Romanian</source>
<translation>Rumano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="195"/>
+ <location filename="../map/CMapIMG.cpp" line="197"/>
<source>Albanian</source>
<translation>Albanés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="196"/>
+ <location filename="../map/CMapIMG.cpp" line="198"/>
<source>Bosnian</source>
<translation>Bosnio</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="197"/>
+ <location filename="../map/CMapIMG.cpp" line="199"/>
<source>Lithuanian</source>
<translation>Lituano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="198"/>
+ <location filename="../map/CMapIMG.cpp" line="200"/>
<source>Serbian</source>
<translation>Serbio</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="199"/>
+ <location filename="../map/CMapIMG.cpp" line="201"/>
<source>Macedonian</source>
<translation>Macedonio</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="200"/>
+ <location filename="../map/CMapIMG.cpp" line="202"/>
<source>Bulgarian</source>
<translation>Búlgaro</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="257"/>
+ <location filename="../map/CMapIMG.cpp" line="259"/>
<source>Major highway</source>
<translation>Autovía Primaria</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="258"/>
+ <location filename="../map/CMapIMG.cpp" line="260"/>
<source>Principal highway</source>
<translation>Autovía secundaria</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="259"/>
+ <location filename="../map/CMapIMG.cpp" line="261"/>
<source>Other highway</source>
<translation>Otras autovías</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="260"/>
+ <location filename="../map/CMapIMG.cpp" line="262"/>
<source>Arterial road</source>
<translation>Carretera principal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="261"/>
+ <location filename="../map/CMapIMG.cpp" line="263"/>
<source>Collector road</source>
<translation>Carretera secundaria</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="262"/>
+ <location filename="../map/CMapIMG.cpp" line="264"/>
<source>Residential street</source>
<translation>Calle residencial</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="263"/>
+ <location filename="../map/CMapIMG.cpp" line="265"/>
<source>Alley/Private road</source>
<translation>Callejón/Carretera privada</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="264"/>
+ <location filename="../map/CMapIMG.cpp" line="266"/>
<source>Highway ramp, low speed</source>
<translation>Acceso a autopista, baja velocidad</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="265"/>
+ <location filename="../map/CMapIMG.cpp" line="267"/>
<source>Highway ramp, high speed</source>
<translation>Acceso a autopista, alta velocidad</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="266"/>
+ <location filename="../map/CMapIMG.cpp" line="268"/>
<source>Unpaved road</source>
<translation>Carretera sin asfaltar</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="267"/>
+ <location filename="../map/CMapIMG.cpp" line="269"/>
<source>Major highway connector</source>
<translation>Conexión con autovía principal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="268"/>
+ <location filename="../map/CMapIMG.cpp" line="270"/>
<source>Roundabout</source>
<translation>Rotonda</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="269"/>
+ <location filename="../map/CMapIMG.cpp" line="271"/>
<source>Railroad</source>
<translation>Ferrocarril</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="270"/>
+ <location filename="../map/CMapIMG.cpp" line="272"/>
<source>Shoreline</source>
<translation>Línea de costa</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="271"/>
+ <location filename="../map/CMapIMG.cpp" line="273"/>
<source>Trail</source>
<translation>Sendero</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="272"/>
+ <location filename="../map/CMapIMG.cpp" line="274"/>
<source>Stream</source>
<translation>Arroyo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="273"/>
+ <location filename="../map/CMapIMG.cpp" line="275"/>
<source>Time zone</source>
<translation>Zona horaria</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="274"/>
- <location filename="../map/CMapIMG.cpp" line="275"/>
+ <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="277"/>
<source>Ferry</source>
<translation>Ferry</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="278"/>
<source>State/province border</source>
<translation>Frontera de estado/provincia</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="277"/>
+ <location filename="../map/CMapIMG.cpp" line="279"/>
<source>County/parish border</source>
<translation>Frontera de condado/término municipal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="278"/>
+ <location filename="../map/CMapIMG.cpp" line="280"/>
<source>International border</source>
<translation>Frontera internacional</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="279"/>
+ <location filename="../map/CMapIMG.cpp" line="281"/>
<source>River</source>
<translation>Río</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="280"/>
+ <location filename="../map/CMapIMG.cpp" line="282"/>
<source>Minor land contour</source>
<translation>Curva altimétrica menor</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="281"/>
+ <location filename="../map/CMapIMG.cpp" line="283"/>
<source>Intermediate land contour</source>
<translation>Curva altimétrica intermedia</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="282"/>
+ <location filename="../map/CMapIMG.cpp" line="284"/>
<source>Major land contour</source>
<translation>Curva altimétrica principal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="283"/>
+ <location filename="../map/CMapIMG.cpp" line="285"/>
<source>Minor depth contour</source>
<translation>Curva batimétrica menor</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="284"/>
+ <location filename="../map/CMapIMG.cpp" line="286"/>
<source>Intermediate depth contour</source>
<translation>Curva batimétrica intermedia</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="285"/>
+ <location filename="../map/CMapIMG.cpp" line="287"/>
<source>Major depth contour</source>
<translation>Curva batimétrica principal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="286"/>
+ <location filename="../map/CMapIMG.cpp" line="288"/>
<source>Intermittent stream</source>
<translation>Curso intermitente</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="287"/>
- <location filename="../map/CMapIMG.cpp" line="369"/>
+ <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="371"/>
<source>Airport runway</source>
<translation>Pista de aterrizaje</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="288"/>
+ <location filename="../map/CMapIMG.cpp" line="290"/>
<source>Pipeline</source>
<translation>Tubería</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="291"/>
<source>Powerline</source>
<translation>Línea eléctrica</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="290"/>
+ <location filename="../map/CMapIMG.cpp" line="292"/>
<source>Marine boundary</source>
<translation>Límite marítimo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="291"/>
+ <location filename="../map/CMapIMG.cpp" line="293"/>
<source>Hazard boundary</source>
<translation>Límite de peligro</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="356"/>
+ <location filename="../map/CMapIMG.cpp" line="358"/>
<source>Large urban area (>200K)</source>
<translation>Área urbana grande (>200K)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="357"/>
+ <location filename="../map/CMapIMG.cpp" line="359"/>
<source>Small urban area (<200K)</source>
<translation>Área urbana pequeña (<200K)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="358"/>
+ <location filename="../map/CMapIMG.cpp" line="360"/>
<source>Rural housing area</source>
<translation>Área de alojamienos rurales</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="359"/>
+ <location filename="../map/CMapIMG.cpp" line="361"/>
<source>Military base</source>
<translation>Base militar</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="360"/>
+ <location filename="../map/CMapIMG.cpp" line="362"/>
<source>Parking lot</source>
<translation>Aparcamiento</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="361"/>
+ <location filename="../map/CMapIMG.cpp" line="363"/>
<source>Parking garage</source>
<translation>Garaje</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="362"/>
+ <location filename="../map/CMapIMG.cpp" line="364"/>
<source>Airport</source>
<translation>Aeropuerto</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="363"/>
+ <location filename="../map/CMapIMG.cpp" line="365"/>
<source>Shopping center</source>
<translation>Centro comercial</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="364"/>
+ <location filename="../map/CMapIMG.cpp" line="366"/>
<source>Marina</source>
<translation>Puerto deportivo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="365"/>
+ <location filename="../map/CMapIMG.cpp" line="367"/>
<source>University/College</source>
<translation>Universidad/Facultad</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="366"/>
+ <location filename="../map/CMapIMG.cpp" line="368"/>
<source>Hospital</source>
<translation>Hospital</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="367"/>
+ <location filename="../map/CMapIMG.cpp" line="369"/>
<source>Industrial complex</source>
<translation>Complejo industrial</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="368"/>
+ <location filename="../map/CMapIMG.cpp" line="370"/>
<source>Reservation</source>
<translation>Reserva natural</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="370"/>
+ <location filename="../map/CMapIMG.cpp" line="372"/>
<source>Man-made area</source>
<translation>Área creada por el hombre</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="371"/>
+ <location filename="../map/CMapIMG.cpp" line="373"/>
<source>Sports complex</source>
<translation>Complejo deportivo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="372"/>
+ <location filename="../map/CMapIMG.cpp" line="374"/>
<source>Golf course</source>
<translation>Recorrido de golf</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="373"/>
+ <location filename="../map/CMapIMG.cpp" line="375"/>
<source>Cemetery</source>
<translation>Cementerio</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="374"/>
- <location filename="../map/CMapIMG.cpp" line="375"/>
<location filename="../map/CMapIMG.cpp" line="376"/>
+ <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="378"/>
<source>National park</source>
<translation>Parque nacional</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="379"/>
<source>City park</source>
<translation>Parque urbano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="378"/>
- <location filename="../map/CMapIMG.cpp" line="379"/>
<location filename="../map/CMapIMG.cpp" line="380"/>
+ <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="382"/>
<source>State park</source>
<translation>Parque regional</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="383"/>
<source>Forest</source>
<translation>Bosque</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="382"/>
+ <location filename="../map/CMapIMG.cpp" line="384"/>
<source>Ocean</source>
<translation>Océano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="383"/>
<location filename="../map/CMapIMG.cpp" line="385"/>
- <location filename="../map/CMapIMG.cpp" line="395"/>
+ <location filename="../map/CMapIMG.cpp" line="387"/>
+ <location filename="../map/CMapIMG.cpp" line="397"/>
<source>Blue (unknown)</source>
<translation>Azul (desconocido)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="384"/>
+ <location filename="../map/CMapIMG.cpp" line="386"/>
<source>Sea</source>
<translation>Mar</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="386"/>
- <location filename="../map/CMapIMG.cpp" line="387"/>
- <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="388"/>
+ <location filename="../map/CMapIMG.cpp" line="389"/>
+ <location filename="../map/CMapIMG.cpp" line="396"/>
<source>Large lake</source>
<translation>Lago grande</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="388"/>
- <location filename="../map/CMapIMG.cpp" line="389"/>
+ <location filename="../map/CMapIMG.cpp" line="390"/>
+ <location filename="../map/CMapIMG.cpp" line="391"/>
<source>Medium lake</source>
<translation>Lago mediano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="390"/>
- <location filename="../map/CMapIMG.cpp" line="391"/>
+ <location filename="../map/CMapIMG.cpp" line="392"/>
+ <location filename="../map/CMapIMG.cpp" line="393"/>
<source>Small lake</source>
<translation>Lago pequeño</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="392"/>
- <location filename="../map/CMapIMG.cpp" line="393"/>
+ <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="395"/>
<source>Major lake</source>
<translation>Lago principal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="396"/>
+ <location filename="../map/CMapIMG.cpp" line="398"/>
<source>Major River</source>
<translation>Río Principal</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="397"/>
+ <location filename="../map/CMapIMG.cpp" line="399"/>
<source>Large River</source>
<translation>Río Grande</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="398"/>
+ <location filename="../map/CMapIMG.cpp" line="400"/>
<source>Medium River</source>
<translation>Río Mediano</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="399"/>
+ <location filename="../map/CMapIMG.cpp" line="401"/>
<source>Small River</source>
<translation>Río Pequeño</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="402"/>
+ <location filename="../map/CMapIMG.cpp" line="404"/>
<source>Intermittent water</source>
<translation>Agua intermitente</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="403"/>
+ <location filename="../map/CMapIMG.cpp" line="405"/>
<source>Wetland/Swamp</source>
<translation>Marisma/Ciénaga</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="404"/>
+ <location filename="../map/CMapIMG.cpp" line="406"/>
<source>Glacier</source>
<translation>Glaciar</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="405"/>
+ <location filename="../map/CMapIMG.cpp" line="407"/>
<source>Orchard/Plantation</source>
<translation>Invernadero/Plantación</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="406"/>
+ <location filename="../map/CMapIMG.cpp" line="408"/>
<source>Scrub</source>
<translation>Monte bajo</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="407"/>
+ <location filename="../map/CMapIMG.cpp" line="409"/>
<source>Tundra</source>
<translation>Tundra</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="408"/>
+ <location filename="../map/CMapIMG.cpp" line="410"/>
<source>Flat</source>
<translation>Llanura</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="409"/>
+ <location filename="../map/CMapIMG.cpp" line="411"/>
<source>???</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="445"/>
+ <location filename="../map/CMapIMG.cpp" line="447"/>
<source>Failed to read: </source>
<translation>Fallo al leer: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="488"/>
+ <location filename="../map/CMapIMG.cpp" line="490"/>
<source>Failed to open: </source>
<translation>Fallo al abrir: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="512"/>
- <location filename="../map/CMapIMG.cpp" line="516"/>
+ <location filename="../map/CMapIMG.cpp" line="514"/>
+ <location filename="../map/CMapIMG.cpp" line="518"/>
<source>Bad file format: </source>
<translation>Formato de archivo incorrecto: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="605"/>
+ <location filename="../map/CMapIMG.cpp" line="607"/>
<source>Failed to read file structure: </source>
<translation>Fallo al leer la estructura del archivo: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="638"/>
+ <location filename="../map/CMapIMG.cpp" line="640"/>
<source>Loading %1</source>
<translation>Cargando %1</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="643"/>
+ <location filename="../map/CMapIMG.cpp" line="645"/>
<source>User abort: </source>
<translation>Abortado por el usuario: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="646"/>
+ <location filename="../map/CMapIMG.cpp" line="648"/>
<source>File is NT format. QMapShack is unable to read map files with NT format: </source>
<translation>El archivo está en formato NT. QMapShack no puede leer archivos en formato NT: </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="738"/>
+ <location filename="../map/CMapIMG.cpp" line="740"/>
<source>File contains locked / encypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
<translation>El archivo contiene datos bloqueados/cifrados. Garmin no quiere que use este archivo con otros programas distintos a los que ellos proporcionan.</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2475"/>
- <location filename="../map/CMapIMG.cpp" line="2483"/>
- <location filename="../map/CMapIMG.cpp" line="2487"/>
- <location filename="../map/CMapIMG.cpp" line="2492"/>
- <location filename="../map/CMapIMG.cpp" line="2538"/>
- <location filename="../map/CMapIMG.cpp" line="2546"/>
- <location filename="../map/CMapIMG.cpp" line="2550"/>
- <location filename="../map/CMapIMG.cpp" line="2555"/>
+ <location filename="../map/CMapIMG.cpp" line="2494"/>
+ <location filename="../map/CMapIMG.cpp" line="2502"/>
+ <location filename="../map/CMapIMG.cpp" line="2506"/>
+ <location filename="../map/CMapIMG.cpp" line="2511"/>
+ <location filename="../map/CMapIMG.cpp" line="2557"/>
+ <location filename="../map/CMapIMG.cpp" line="2565"/>
+ <location filename="../map/CMapIMG.cpp" line="2569"/>
+ <location filename="../map/CMapIMG.cpp" line="2574"/>
<source>Point of Interest</source>
<translation>Punto de Interés</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2682"/>
+ <location filename="../map/CMapIMG.cpp" line="2701"/>
<source>Unknown</source>
<translation>Desconocido</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2728"/>
- <location filename="../map/CMapIMG.cpp" line="2736"/>
- <location filename="../map/CMapIMG.cpp" line="2743"/>
+ <location filename="../map/CMapIMG.cpp" line="2747"/>
+ <location filename="../map/CMapIMG.cpp" line="2755"/>
+ <location filename="../map/CMapIMG.cpp" line="2762"/>
<source>Area</source>
<translation>Área</translation>
</message>
@@ -1227,15 +1227,20 @@
<context>
<name>CMapList</name>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Deactivate</source>
<translation>Desactivar</translation>
</message>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Activate</source>
<translation>Activar</translation>
</message>
+ <message>
+ <location filename="../map/CMapList.cpp" line="174"/>
+ <source>Where do you want to store maps?</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>CMapMAP</name>
@@ -1258,17 +1263,17 @@
<context>
<name>CMapPathSetup</name>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="45"/>
+ <location filename="../map/CMapPathSetup.cpp" line="47"/>
<source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
<translation>Añada o elimine rutas que contengan mapas. Puede haber múltiples mapas en una ruta, pero no se buscará en subdirectorios. Los formatos soportados son: %1</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="60"/>
+ <location filename="../map/CMapPathSetup.cpp" line="62"/>
<source>Select map path...</source>
<translation>Selecciona la ruta del mapa...</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="76"/>
+ <location filename="../map/CMapPathSetup.cpp" line="78"/>
<source>Select root path...</source>
<translation type="unfinished"></translation>
</message>
@@ -1474,22 +1479,22 @@ Estructura desconocida.</translation>
<context>
<name>CMouseNormal</name>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="43"/>
<source>Add Waypoint</source>
<translation>Añadir Waypoint</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="44"/>
<source>Add Track</source>
<translation>Añadir Track</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="45"/>
<source>Add Area</source>
<translation>Añadir Área</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="47"/>
<source>Copy position</source>
<translation>Copiar posición</translation>
</message>
@@ -1941,6 +1946,21 @@ no es una definición de sistema de coordenadas válido:
<source>...</source>
<translation>...</translation>
</message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+ <source>Scales</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+ <source>Logarithmic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+ <source>Square (optimized for TMS and WTMS tiles)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ICombineTrk</name>
@@ -2238,104 +2258,105 @@ no es una definición de sistema de coordenadas válido:
<message>
<location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
<location filename="../gis/trk/IDetailsTrk.ui" line="77"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="98"/>
<source>-
-</source>
<translation>-
-</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="182"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
<source>Graph Control</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="224"/>
<source>Profile</source>
<translation>Perfil</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="210"/>
- <location filename="../gis/trk/IDetailsTrk.ui" line="446"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="231"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="467"/>
<source>Speed</source>
<translation>Velocidad</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="217"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="238"/>
<source>Progress</source>
<translation>Progreso</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="227"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="248"/>
<source>Track</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="253"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="274"/>
<source>...</source>
<translation>...</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="378"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="399"/>
<source>Points</source>
<translation>Puntos</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="426"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="447"/>
<source>Time</source>
<translation>Tiempo</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="431"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="452"/>
<source>Ele.</source>
<translation>Altitud</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
<source>Delta</source>
<translation>Delta</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="441"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="462"/>
<source>Dist.</source>
<translation>Distancia</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="472"/>
<source>Slope</source>
<translation>Pendiente</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="456"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="477"/>
<source>Ascend</source>
<translation>Ascenso</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="461"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
<source>Descend</source>
<translation>Descenso</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="466"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="487"/>
<source>Position</source>
<translation>Posición</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="350"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="371"/>
<source>Info</source>
<translation>Información</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="308"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="329"/>
<source>-</source>
<translation>-</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="475"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="496"/>
<source>Filter</source>
<translation>Filtro</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="512"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="533"/>
<source>Hist.</source>
<translation>Historial</translation>
</message>
@@ -3108,7 +3129,13 @@ no es una definición de sistema de coordenadas válido:
<translation>Use el menú contextual (botón derecho del ratón, y seleccione) para activar un mapa. Use arrastrar y soltar para mover el mapa activado en el orden de dibujado. </translation>
</message>
<message>
- <location filename="../map/IMapList.ui" line="141"/>
+ <location filename="../map/IMapList.ui" line="129"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../map/IMapList.ui" line="149"/>
<source>Activate</source>
<translation>Activar</translation>
</message>
@@ -3133,6 +3160,12 @@ no es una definición de sistema de coordenadas válido:
<translation>...</translation>
</message>
<message>
+ <location filename="../map/IMapPathSetup.ui" line="185"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../map/IMapPathSetup.ui" line="29"/>
<location filename="../map/IMapPathSetup.ui" line="135"/>
<source>-</source>
@@ -3245,22 +3278,22 @@ no es una definición de sistema de coordenadas válido:
<context>
<name>IMouseEditLine</name>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points?</source>
<translation>¿Añadir puntos?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points to temporary line?</source>
<translation>¿Añadir puntos a la línea temporal?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>Warning!</source>
<translation>¡Cuidado!</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>This will replace all data of the orignal by a simple line of coordinates. All other data will be lost permanently.</source>
<translation>Esto sustituirá todos los datos del original con una simple línea de coordenadas. Todos los demás datos se perderán definitivamente.</translation>
</message>
@@ -3282,17 +3315,22 @@ no es una definición de sistema de coordenadas válido:
<context>
<name>IPlot</name>
<message>
- <location filename="../plot/IPlot.cpp" line="101"/>
+ <location filename="../plot/IPlot.cpp" line="108"/>
+ <source>Stop Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../plot/IPlot.cpp" line="109"/>
<source>Save...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="500"/>
+ <location filename="../plot/IPlot.cpp" line="602"/>
<source>No or bad data.</source>
<translation>Datos incorrectos o inexistentes.</translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="1015"/>
+ <location filename="../plot/IPlot.cpp" line="1128"/>
<source>Select output file</source>
<translation type="unfinished"></translation>
</message>
@@ -4184,33 +4222,43 @@ Areas: %1</source>
Áreas: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>Save project?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>The project "%1" was changed. Save befor closing it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="255"/>
<source><br/>
Filename: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="256"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="272"/>
<source>Waypoints: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="260"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="276"/>
<source>Tracks: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="264"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="280"/>
<source>Routes: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="268"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="284"/>
<source>Areas: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="329"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="345"/>
<source>Are you sure you want to delete '%1' from project '%2'?</source>
<translation>¿Desea realmente eleiminar '%1' del proyecto '%2'?</translation>
</message>
@@ -4221,7 +4269,7 @@ Filename: %1</source>
</message>
<message>
<location filename="../gis/CGisListDB.cpp" line="408"/>
- <location filename="../gis/prj/IGisProject.cpp" line="330"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="346"/>
<source>Delete...</source>
<translation>Borrar...</translation>
</message>
@@ -4283,113 +4331,149 @@ Filename: %1</source>
<translation>Fallo al escribir en el archivo '%1'</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
<source>Length: %1 %2</source>
<translation>Longitud: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="409"/>
<source>, %1%2 %3, %4%5 %6</source>
<translation>, %1%2 %3, %4%5 %6</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
<source>Time: %1</source>
<translation>Tiempo: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="420"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
<source>, Speed: %1 %2</source>
<translation>, Velocidad: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="427"/>
<source>Moving: %1</source>
<translation>En movimiento: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
<source>Start: %1</source>
<translation>Comienzo: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="441"/>
<source>End: %1</source>
<translation>Final: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
<source>Points: %1 (%2)</source>
<translation>Puntos: %1 (%2)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="563"/>
<source>Ele.: %1 %2</source>
<translation>Altitud: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="566"/>
<source> slope: %1%3 (%2%)</source>
<translation> pendiente: %1%3 (%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="571"/>
<source> speed: %1%2</source>
<translation> velocidad: %1%2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="583"/>
<source>Ascend: %1%2 (%3%)</source>
<translation>Ascenso: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="587"/>
<source>Ascend: - (-)</source>
<translation>Ascenso: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="597"/>
<source> Descend: - (-) </source>
<translation> Descenso: - (-) </translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="618"/>
<source> Moving: - (-) </source>
<translation> En movimiento: - (-) </translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
+ <source>Ascend: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="642"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="659"/>
+ <source>, %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+ <source>Ascend: -</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+ <source> Descend: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="664"/>
+ <source>Descend: -</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="670"/>
+ <source>Dist.: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="675"/>
+ <source> Time: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1334"/>
<source>Hide points.</source>
<translation>Ocultar puntos.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1380"/>
<source>Show points.</source>
<translation>Mostrar puntos.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
<source> Descend: %1%2 (%3%)</source>
<translation> Descenso: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="326"/>
<source>Changed trackpoints, sacrificed all previous data.</source>
<translation>Se cambiaron los puntos del track, y descartados todos los datos previos.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="604"/>
<source>Dist.: %1%2 (%3%)</source>
<translation>Distancia: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
<source>Dist.: - (-)</source>
<translation>Dist.: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="614"/>
<source> Moving: %1%2 (%3%)</source>
<translation> En movimiento: %1%2 (%3%)</translation>
</message>
@@ -4416,7 +4500,7 @@ Filename: %1</source>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="142"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="45"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="184"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
<source>_Clone</source>
<translation type="unfinished"></translation>
@@ -4464,14 +4548,14 @@ Filename: %1</source>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="520"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="139"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1739"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="376"/>
<source>Changed links</source>
<translation>Se cambió el enlace</translation>
</message>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="532"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1751"/>
<source>Changed color</source>
<translation>Se cambió el color</translation>
</message>
@@ -4486,17 +4570,17 @@ Filename: %1</source>
<translation>Proximidad: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1721"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="324"/>
<source>Changed name</source>
<translation>Se cambió el nombre</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="190"/>
<location filename="../mouse/CMouseEditArea.cpp" line="100"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
@@ -4540,14 +4624,14 @@ Filename: %1</source>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1727"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="364"/>
<source>Changed comment</source>
<translation>Se cambió el comentario</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="133"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1733"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
<source>Changed description</source>
<translation>Se cambió la descripción</translation>
@@ -4633,11 +4717,11 @@ Filename: %1</source>
<translation><p>--- sin links ---</p></translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
<source>Enter new track name.</source>
<translation>Introduzca el nombre del nuevo track.</translation>
@@ -4744,12 +4828,12 @@ Filename: %1</source>
<translation>Velocidad modificada a %1%2.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Delete project...</source>
<translation>Eliminar Proyecto...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Do you really want to delete %1?</source>
<translation>¿Desea realmente eliminar %1?</translation>
</message>
@@ -4757,16 +4841,16 @@ Filename: %1</source>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Error...</source>
<translation>Error...</translation>
</message>
@@ -4774,31 +4858,36 @@ Filename: %1</source>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
<source>Failed to open %1.</source>
<translation>Fallo al abrir %1.</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
<source>Only support lon/lat WGS 84 format.</source>
<translation type="unfinished">Solamente soporta formato lon/lat WGS84.</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Failed to read data.</source>
<translation>Fallo al leer los datos.</translation>
</message>
<message>
- <location filename="../device/CDeviceGarmin.cpp" line="202"/>
+ <location filename="../device/CDeviceGarmin.cpp" line="207"/>
<source>Picture%1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../device/IDevice.cpp" line="202"/>
+ <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/locale/qmapshack_fr.ts b/src/locale/qmapshack_fr.ts
index 8059b93..6f54592 100644
--- a/src/locale/qmapshack_fr.ts
+++ b/src/locale/qmapshack_fr.ts
@@ -227,22 +227,22 @@
<translation>Découper la trace</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="230"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="236"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="255"/>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="257"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="222"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="231"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="234"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="240"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="259"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="261"/>
<source>%1 %2</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Edit name...</source>
<translation type="unfinished">Éditer le nom...</translation>
</message>
<message>
- <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
+ <location filename="../gis/trk/CDetailsTrk.cpp" line="397"/>
<source>Enter new track name.</source>
<translation type="unfinished">Saisir le nouveau nom de la trace.</translation>
</message>
@@ -446,19 +446,19 @@
<translation>Chargement de l'espace de travail. Patientez.</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>Close all projects...</source>
<translation>Fermer tous les projets...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="1176"/>
+ <location filename="../gis/CGisListWks.cpp" line="909"/>
<source>This will remove all projects from the workspace.</source>
<translation>Ceci enlevera tous les projets de l'espace de travail.</translation>
</message>
<message>
<location filename="../gis/CGisListWks.cpp" line="586"/>
- <location filename="../gis/CGisListWks.cpp" line="1237"/>
- <location filename="../gis/CGisListWks.cpp" line="1275"/>
+ <location filename="../gis/CGisListWks.cpp" line="1253"/>
+ <location filename="../gis/CGisListWks.cpp" line="1292"/>
<source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
<translation><b>Mise à jour des appareils</b><p>Mise à jour de %1<br/>Patientez...</p></translation>
</message>
@@ -518,22 +518,22 @@
<context>
<name>CMainWindow</name>
<message>
- <location filename="../CMainWindow.cpp" line="476"/>
+ <location filename="../CMainWindow.cpp" line="485"/>
<source>Ele: %1%2</source>
<translation>Altitude: %1%2</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="602"/>
+ <location filename="../CMainWindow.cpp" line="611"/>
<source>Load GIS Data...</source>
<translation>Charger des données SIG...</translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="636"/>
+ <location filename="../CMainWindow.cpp" line="645"/>
<source>Select output file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../CMainWindow.cpp" line="662"/>
+ <location filename="../CMainWindow.cpp" line="671"/>
<source>Select file to load</source>
<translation type="unfinished"></translation>
</message>
@@ -541,630 +541,630 @@
<context>
<name>CMapIMG</name>
<message>
- <location filename="../map/CMapIMG.cpp" line="151"/>
+ <location filename="../map/CMapIMG.cpp" line="153"/>
<source>Failed ...</source>
<translation>Échec...</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="166"/>
+ <location filename="../map/CMapIMG.cpp" line="168"/>
<source>Unspecified</source>
<translation>Non défini</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="167"/>
+ <location filename="../map/CMapIMG.cpp" line="169"/>
<source>French</source>
<translation>Français</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="168"/>
+ <location filename="../map/CMapIMG.cpp" line="170"/>
<source>German</source>
<translation>Deutsch</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="169"/>
+ <location filename="../map/CMapIMG.cpp" line="171"/>
<source>Dutch</source>
<translation>Néerlandais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="170"/>
+ <location filename="../map/CMapIMG.cpp" line="172"/>
<source>English</source>
<translation>Anglais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="171"/>
+ <location filename="../map/CMapIMG.cpp" line="173"/>
<source>Italian</source>
<translation>Italien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="172"/>
+ <location filename="../map/CMapIMG.cpp" line="174"/>
<source>Finnish</source>
<translation>Finlandais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="173"/>
+ <location filename="../map/CMapIMG.cpp" line="175"/>
<source>Swedish</source>
<translation>Suédois</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="174"/>
+ <location filename="../map/CMapIMG.cpp" line="176"/>
<source>Spanish</source>
<translation>Espagnol</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="175"/>
+ <location filename="../map/CMapIMG.cpp" line="177"/>
<source>Basque</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="176"/>
+ <location filename="../map/CMapIMG.cpp" line="178"/>
<source>Catalan</source>
<translation>Catalan</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="177"/>
+ <location filename="../map/CMapIMG.cpp" line="179"/>
<source>Galician</source>
<translation>Galicien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="178"/>
+ <location filename="../map/CMapIMG.cpp" line="180"/>
<source>Welsh</source>
<translation>Gallois</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="179"/>
+ <location filename="../map/CMapIMG.cpp" line="181"/>
<source>Gaelic</source>
<translation>Gaëlic</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="180"/>
+ <location filename="../map/CMapIMG.cpp" line="182"/>
<source>Danish</source>
<translation>Danois</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="181"/>
+ <location filename="../map/CMapIMG.cpp" line="183"/>
<source>Norwegian</source>
<translation>Norvégien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="182"/>
+ <location filename="../map/CMapIMG.cpp" line="184"/>
<source>Portuguese</source>
<translation>Portugais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="183"/>
+ <location filename="../map/CMapIMG.cpp" line="185"/>
<source>Slovak</source>
<translation>Slovaque</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="184"/>
+ <location filename="../map/CMapIMG.cpp" line="186"/>
<source>Czech</source>
<translation>Tchèque</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="185"/>
+ <location filename="../map/CMapIMG.cpp" line="187"/>
<source>Croatian</source>
<translation>Croate</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="186"/>
+ <location filename="../map/CMapIMG.cpp" line="188"/>
<source>Hungarian</source>
<translation>Hongrois</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="187"/>
+ <location filename="../map/CMapIMG.cpp" line="189"/>
<source>Polish</source>
<translation>Polonais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="188"/>
+ <location filename="../map/CMapIMG.cpp" line="190"/>
<source>Turkish</source>
<translation>Turque</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="189"/>
+ <location filename="../map/CMapIMG.cpp" line="191"/>
<source>Greek</source>
<translation>Grèc</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="190"/>
+ <location filename="../map/CMapIMG.cpp" line="192"/>
<source>Slovenian</source>
<translation>Slovène</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="191"/>
+ <location filename="../map/CMapIMG.cpp" line="193"/>
<source>Russian</source>
<translation>Russe</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="192"/>
+ <location filename="../map/CMapIMG.cpp" line="194"/>
<source>Estonian</source>
<translation>Estonien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="193"/>
+ <location filename="../map/CMapIMG.cpp" line="195"/>
<source>Latvian</source>
<translation>Letton</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="194"/>
+ <location filename="../map/CMapIMG.cpp" line="196"/>
<source>Romanian</source>
<translation>Roumain</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="195"/>
+ <location filename="../map/CMapIMG.cpp" line="197"/>
<source>Albanian</source>
<translation>Albanais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="196"/>
+ <location filename="../map/CMapIMG.cpp" line="198"/>
<source>Bosnian</source>
<translation>Bosnien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="197"/>
+ <location filename="../map/CMapIMG.cpp" line="199"/>
<source>Lithuanian</source>
<translation>Lituanien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="198"/>
+ <location filename="../map/CMapIMG.cpp" line="200"/>
<source>Serbian</source>
<translation>Serbe</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="199"/>
+ <location filename="../map/CMapIMG.cpp" line="201"/>
<source>Macedonian</source>
<translation>Macédonien</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="200"/>
+ <location filename="../map/CMapIMG.cpp" line="202"/>
<source>Bulgarian</source>
<translation>Bulgare</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="257"/>
+ <location filename="../map/CMapIMG.cpp" line="259"/>
<source>Major highway</source>
<translation>Route majeure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="258"/>
+ <location filename="../map/CMapIMG.cpp" line="260"/>
<source>Principal highway</source>
<translation>Route principale</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="259"/>
+ <location filename="../map/CMapIMG.cpp" line="261"/>
<source>Other highway</source>
<translation>Autre route</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="260"/>
+ <location filename="../map/CMapIMG.cpp" line="262"/>
<source>Arterial road</source>
<translation>Artère urbaine</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="261"/>
+ <location filename="../map/CMapIMG.cpp" line="263"/>
<source>Collector road</source>
<translation>Rue principale</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="262"/>
+ <location filename="../map/CMapIMG.cpp" line="264"/>
<source>Residential street</source>
<translation>Rue résidentielle</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="263"/>
+ <location filename="../map/CMapIMG.cpp" line="265"/>
<source>Alley/Private road</source>
<translation>Ruelle/Route privée</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="264"/>
+ <location filename="../map/CMapIMG.cpp" line="266"/>
<source>Highway ramp, low speed</source>
<translation>Bretelle d'accès, basse vitesse</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="265"/>
+ <location filename="../map/CMapIMG.cpp" line="267"/>
<source>Highway ramp, high speed</source>
<translation>Bretelle d'accès, grande vitesse</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="266"/>
+ <location filename="../map/CMapIMG.cpp" line="268"/>
<source>Unpaved road</source>
<translation>Route non bitumé</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="267"/>
+ <location filename="../map/CMapIMG.cpp" line="269"/>
<source>Major highway connector</source>
<translation>Bretelle majeure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="268"/>
+ <location filename="../map/CMapIMG.cpp" line="270"/>
<source>Roundabout</source>
<translation>Rond-point</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="269"/>
+ <location filename="../map/CMapIMG.cpp" line="271"/>
<source>Railroad</source>
<translation>Voie ferrée</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="270"/>
+ <location filename="../map/CMapIMG.cpp" line="272"/>
<source>Shoreline</source>
<translation>Ligne côtière</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="271"/>
+ <location filename="../map/CMapIMG.cpp" line="273"/>
<source>Trail</source>
<translation>Sentier</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="272"/>
+ <location filename="../map/CMapIMG.cpp" line="274"/>
<source>Stream</source>
<translation>Ruisseau</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="273"/>
+ <location filename="../map/CMapIMG.cpp" line="275"/>
<source>Time zone</source>
<translation>Fuseau horaire</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="274"/>
- <location filename="../map/CMapIMG.cpp" line="275"/>
+ <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="277"/>
<source>Ferry</source>
<translation>Bac</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="276"/>
+ <location filename="../map/CMapIMG.cpp" line="278"/>
<source>State/province border</source>
<translation>Frontière de province</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="277"/>
+ <location filename="../map/CMapIMG.cpp" line="279"/>
<source>County/parish border</source>
<translation>Frontière de canton</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="278"/>
+ <location filename="../map/CMapIMG.cpp" line="280"/>
<source>International border</source>
<translation>Frontière internationale</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="279"/>
+ <location filename="../map/CMapIMG.cpp" line="281"/>
<source>River</source>
<translation>Rivière</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="280"/>
+ <location filename="../map/CMapIMG.cpp" line="282"/>
<source>Minor land contour</source>
<translation>Courbe de niveau mineure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="281"/>
+ <location filename="../map/CMapIMG.cpp" line="283"/>
<source>Intermediate land contour</source>
<translation>Courbe de niveau intermédiaire</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="282"/>
+ <location filename="../map/CMapIMG.cpp" line="284"/>
<source>Major land contour</source>
<translation>Courbe de niveau majeure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="283"/>
+ <location filename="../map/CMapIMG.cpp" line="285"/>
<source>Minor depth contour</source>
<translation>Courbe isobathe mineure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="284"/>
+ <location filename="../map/CMapIMG.cpp" line="286"/>
<source>Intermediate depth contour</source>
<translation>Courbe isobathe intermédiaire</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="285"/>
+ <location filename="../map/CMapIMG.cpp" line="287"/>
<source>Major depth contour</source>
<translation>Courbe isobathe majeure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="286"/>
+ <location filename="../map/CMapIMG.cpp" line="288"/>
<source>Intermittent stream</source>
<translation>Ruisseau intermittent</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="287"/>
- <location filename="../map/CMapIMG.cpp" line="369"/>
+ <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="371"/>
<source>Airport runway</source>
<translation>Tarmac</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="288"/>
+ <location filename="../map/CMapIMG.cpp" line="290"/>
<source>Pipeline</source>
<translation>Oléoduc</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="289"/>
+ <location filename="../map/CMapIMG.cpp" line="291"/>
<source>Powerline</source>
<translation>Ligne à haute tension</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="290"/>
+ <location filename="../map/CMapIMG.cpp" line="292"/>
<source>Marine boundary</source>
<translation>Frontière maritime</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="291"/>
+ <location filename="../map/CMapIMG.cpp" line="293"/>
<source>Hazard boundary</source>
<translation>Limite de zone à risque</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="356"/>
+ <location filename="../map/CMapIMG.cpp" line="358"/>
<source>Large urban area (>200K)</source>
<translation>Grande agglomération urbaine (>200K)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="357"/>
+ <location filename="../map/CMapIMG.cpp" line="359"/>
<source>Small urban area (<200K)</source>
<translation>Petite agglomération urbaine (<200K)</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="358"/>
+ <location filename="../map/CMapIMG.cpp" line="360"/>
<source>Rural housing area</source>
<translation>Zone résidentielle rurale</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="359"/>
+ <location filename="../map/CMapIMG.cpp" line="361"/>
<source>Military base</source>
<translation>Base militaire</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="360"/>
+ <location filename="../map/CMapIMG.cpp" line="362"/>
<source>Parking lot</source>
<translation>Parking</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="361"/>
+ <location filename="../map/CMapIMG.cpp" line="363"/>
<source>Parking garage</source>
<translation>Parking couvert</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="362"/>
+ <location filename="../map/CMapIMG.cpp" line="364"/>
<source>Airport</source>
<translation>Aéroport</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="363"/>
+ <location filename="../map/CMapIMG.cpp" line="365"/>
<source>Shopping center</source>
<translation>Centre commercial</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="364"/>
+ <location filename="../map/CMapIMG.cpp" line="366"/>
<source>Marina</source>
<translation>Marina</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="365"/>
+ <location filename="../map/CMapIMG.cpp" line="367"/>
<source>University/College</source>
<translation>Université</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="366"/>
+ <location filename="../map/CMapIMG.cpp" line="368"/>
<source>Hospital</source>
<translation>Hôpital</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="367"/>
+ <location filename="../map/CMapIMG.cpp" line="369"/>
<source>Industrial complex</source>
<translation>Complexe industriel</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="368"/>
+ <location filename="../map/CMapIMG.cpp" line="370"/>
<source>Reservation</source>
<translation>Reserve naturelle</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="370"/>
+ <location filename="../map/CMapIMG.cpp" line="372"/>
<source>Man-made area</source>
<translation>Zone industrielle</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="371"/>
+ <location filename="../map/CMapIMG.cpp" line="373"/>
<source>Sports complex</source>
<translation>Complexe sportif</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="372"/>
+ <location filename="../map/CMapIMG.cpp" line="374"/>
<source>Golf course</source>
<translation>Golf</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="373"/>
+ <location filename="../map/CMapIMG.cpp" line="375"/>
<source>Cemetery</source>
<translation>Cimetière</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="374"/>
- <location filename="../map/CMapIMG.cpp" line="375"/>
<location filename="../map/CMapIMG.cpp" line="376"/>
+ <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="378"/>
<source>National park</source>
<translation>Parc national</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="377"/>
+ <location filename="../map/CMapIMG.cpp" line="379"/>
<source>City park</source>
<translation>Parc urbain</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="378"/>
- <location filename="../map/CMapIMG.cpp" line="379"/>
<location filename="../map/CMapIMG.cpp" line="380"/>
+ <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="382"/>
<source>State park</source>
<translation>Parc régional</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="381"/>
+ <location filename="../map/CMapIMG.cpp" line="383"/>
<source>Forest</source>
<translation>Forêt</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="382"/>
+ <location filename="../map/CMapIMG.cpp" line="384"/>
<source>Ocean</source>
<translation>Océan</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="383"/>
<location filename="../map/CMapIMG.cpp" line="385"/>
- <location filename="../map/CMapIMG.cpp" line="395"/>
+ <location filename="../map/CMapIMG.cpp" line="387"/>
+ <location filename="../map/CMapIMG.cpp" line="397"/>
<source>Blue (unknown)</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="384"/>
+ <location filename="../map/CMapIMG.cpp" line="386"/>
<source>Sea</source>
<translation>Mer</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="386"/>
- <location filename="../map/CMapIMG.cpp" line="387"/>
- <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="388"/>
+ <location filename="../map/CMapIMG.cpp" line="389"/>
+ <location filename="../map/CMapIMG.cpp" line="396"/>
<source>Large lake</source>
<translation>Grand lac</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="388"/>
- <location filename="../map/CMapIMG.cpp" line="389"/>
+ <location filename="../map/CMapIMG.cpp" line="390"/>
+ <location filename="../map/CMapIMG.cpp" line="391"/>
<source>Medium lake</source>
<translation>Lac moyen</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="390"/>
- <location filename="../map/CMapIMG.cpp" line="391"/>
+ <location filename="../map/CMapIMG.cpp" line="392"/>
+ <location filename="../map/CMapIMG.cpp" line="393"/>
<source>Small lake</source>
<translation>Petit lac</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="392"/>
- <location filename="../map/CMapIMG.cpp" line="393"/>
+ <location filename="../map/CMapIMG.cpp" line="394"/>
+ <location filename="../map/CMapIMG.cpp" line="395"/>
<source>Major lake</source>
<translation>Lac majeur</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="396"/>
+ <location filename="../map/CMapIMG.cpp" line="398"/>
<source>Major River</source>
<translation>Rivière majeure</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="397"/>
+ <location filename="../map/CMapIMG.cpp" line="399"/>
<source>Large River</source>
<translation>Grande rivière</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="398"/>
+ <location filename="../map/CMapIMG.cpp" line="400"/>
<source>Medium River</source>
<translation>Rivière moyenne</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="399"/>
+ <location filename="../map/CMapIMG.cpp" line="401"/>
<source>Small River</source>
<translation>Petite rivière</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="402"/>
+ <location filename="../map/CMapIMG.cpp" line="404"/>
<source>Intermittent water</source>
<translation>Cours d'eau intermittent</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="403"/>
+ <location filename="../map/CMapIMG.cpp" line="405"/>
<source>Wetland/Swamp</source>
<translation>Marais</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="404"/>
+ <location filename="../map/CMapIMG.cpp" line="406"/>
<source>Glacier</source>
<translation>Glacier</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="405"/>
+ <location filename="../map/CMapIMG.cpp" line="407"/>
<source>Orchard/Plantation</source>
<translation>Verger</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="406"/>
+ <location filename="../map/CMapIMG.cpp" line="408"/>
<source>Scrub</source>
<translation>Broussaille</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="407"/>
+ <location filename="../map/CMapIMG.cpp" line="409"/>
<source>Tundra</source>
<translation>Tundra</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="408"/>
+ <location filename="../map/CMapIMG.cpp" line="410"/>
<source>Flat</source>
<translation>Plaine</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="409"/>
+ <location filename="../map/CMapIMG.cpp" line="411"/>
<source>???</source>
<translation></translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="445"/>
+ <location filename="../map/CMapIMG.cpp" line="447"/>
<source>Failed to read: </source>
<translation>Erreur de lecture : </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="488"/>
+ <location filename="../map/CMapIMG.cpp" line="490"/>
<source>Failed to open: </source>
<translation>Échec d'ouverture : </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="512"/>
- <location filename="../map/CMapIMG.cpp" line="516"/>
+ <location filename="../map/CMapIMG.cpp" line="514"/>
+ <location filename="../map/CMapIMG.cpp" line="518"/>
<source>Bad file format: </source>
<translation>Format de fichier invalide : </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="605"/>
+ <location filename="../map/CMapIMG.cpp" line="607"/>
<source>Failed to read file structure: </source>
<translation>Erreur de lecture de la structure du fichier : </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="638"/>
+ <location filename="../map/CMapIMG.cpp" line="640"/>
<source>Loading %1</source>
<translation>Chargement de %1</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="643"/>
+ <location filename="../map/CMapIMG.cpp" line="645"/>
<source>User abort: </source>
<translation>Interruption par l'utilisateur : </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="646"/>
+ <location filename="../map/CMapIMG.cpp" line="648"/>
<source>File is NT format. QMapShack is unable to read map files with NT format: </source>
<translation>Le fichier est au format NT. QMapShack ne peut pas lire des fichiers au format NT : </translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="738"/>
+ <location filename="../map/CMapIMG.cpp" line="740"/>
<source>File contains locked / encypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
<translation>Le fichier contient des données verrouillées / cryptées. Garmin ne vous autorise pas d'utiliser ce fichier avec un logiciel non fourni par Garmin.</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2475"/>
- <location filename="../map/CMapIMG.cpp" line="2483"/>
- <location filename="../map/CMapIMG.cpp" line="2487"/>
- <location filename="../map/CMapIMG.cpp" line="2492"/>
- <location filename="../map/CMapIMG.cpp" line="2538"/>
- <location filename="../map/CMapIMG.cpp" line="2546"/>
- <location filename="../map/CMapIMG.cpp" line="2550"/>
- <location filename="../map/CMapIMG.cpp" line="2555"/>
+ <location filename="../map/CMapIMG.cpp" line="2494"/>
+ <location filename="../map/CMapIMG.cpp" line="2502"/>
+ <location filename="../map/CMapIMG.cpp" line="2506"/>
+ <location filename="../map/CMapIMG.cpp" line="2511"/>
+ <location filename="../map/CMapIMG.cpp" line="2557"/>
+ <location filename="../map/CMapIMG.cpp" line="2565"/>
+ <location filename="../map/CMapIMG.cpp" line="2569"/>
+ <location filename="../map/CMapIMG.cpp" line="2574"/>
<source>Point of Interest</source>
<translation>Point d'intérêt</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2682"/>
+ <location filename="../map/CMapIMG.cpp" line="2701"/>
<source>Unknown</source>
<translation>Inconnu</translation>
</message>
<message>
- <location filename="../map/CMapIMG.cpp" line="2728"/>
- <location filename="../map/CMapIMG.cpp" line="2736"/>
- <location filename="../map/CMapIMG.cpp" line="2743"/>
+ <location filename="../map/CMapIMG.cpp" line="2747"/>
+ <location filename="../map/CMapIMG.cpp" line="2755"/>
+ <location filename="../map/CMapIMG.cpp" line="2762"/>
<source>Area</source>
<translation>Surface</translation>
</message>
@@ -1172,15 +1172,20 @@
<context>
<name>CMapList</name>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Deactivate</source>
<translation>Désactiver</translation>
</message>
<message>
- <location filename="../map/CMapList.cpp" line="150"/>
+ <location filename="../map/CMapList.cpp" line="155"/>
<source>Activate</source>
<translation>Activer</translation>
</message>
+ <message>
+ <location filename="../map/CMapList.cpp" line="174"/>
+ <source>Where do you want to store maps?</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>CMapMAP</name>
@@ -1203,17 +1208,17 @@
<context>
<name>CMapPathSetup</name>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="45"/>
+ <location filename="../map/CMapPathSetup.cpp" line="47"/>
<source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
<translation>Ajoutez ou retirez des répertoires qui contiennent des cartes. Il peut y avoir plusieurs cartes dans un répertoire mais les sous-répertoires ne sont pas prises en compte. Les formats acceptés sont : %1</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="60"/>
+ <location filename="../map/CMapPathSetup.cpp" line="62"/>
<source>Select map path...</source>
<translation>Choisissez un répertoire...</translation>
</message>
<message>
- <location filename="../map/CMapPathSetup.cpp" line="76"/>
+ <location filename="../map/CMapPathSetup.cpp" line="78"/>
<source>Select root path...</source>
<translation type="unfinished"></translation>
</message>
@@ -1419,22 +1424,22 @@ Structure inconnue.</translation>
<context>
<name>CMouseNormal</name>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="43"/>
<source>Add Waypoint</source>
<translation>Ajouter un waypoint</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="44"/>
<source>Add Track</source>
<translation>Ajouter une trace</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="45"/>
<source>Add Area</source>
<translation>Ajouter une surface</translation>
</message>
<message>
- <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+ <location filename="../mouse/CMouseNormal.cpp" line="47"/>
<source>Copy position</source>
<translation>Copier la position</translation>
</message>
@@ -1863,6 +1868,21 @@ n'est pas une définition de système de coordonnées:
<source>...</source>
<translation></translation>
</message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+ <source>Scales</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+ <source>Logarithmic</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+ <source>Square (optimized for TMS and WTMS tiles)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ICombineTrk</name>
@@ -2160,103 +2180,104 @@ n'est pas une définition de système de coordonnées:
<message>
<location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
<location filename="../gis/trk/IDetailsTrk.ui" line="77"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="98"/>
<source>-
-</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="350"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="371"/>
<source>Info</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="253"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="274"/>
<source>...</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="182"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
<source>Graph Control</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="203"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="224"/>
<source>Profile</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="210"/>
- <location filename="../gis/trk/IDetailsTrk.ui" line="446"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="231"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="467"/>
<source>Speed</source>
<translation>Vitesse</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="217"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="238"/>
<source>Progress</source>
<translation>Progrès</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="227"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="248"/>
<source>Track</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="308"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="329"/>
<source>-</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="378"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="399"/>
<source>Points</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="426"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="447"/>
<source>Time</source>
<translation>Durée</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="431"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="452"/>
<source>Ele.</source>
<translation>Alt.</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
<source>Delta</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="441"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="462"/>
<source>Dist.</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="472"/>
<source>Slope</source>
<translation>Pente</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="456"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="477"/>
<source>Ascend</source>
<translation>Montée</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="461"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
<source>Descend</source>
<translation>Descente</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="466"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="487"/>
<source>Position</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="475"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="496"/>
<source>Filter</source>
<translation>Filtre</translation>
</message>
<message>
- <location filename="../gis/trk/IDetailsTrk.ui" line="512"/>
+ <location filename="../gis/trk/IDetailsTrk.ui" line="533"/>
<source>Hist.</source>
<translation></translation>
</message>
@@ -3017,7 +3038,13 @@ n'est pas une définition de système de coordonnées:
<translation>Utiliser le menu de contexte (clic droite sur la carte) pour activer une carte. Utilisez glisser-déposer pour changer la position de la carte dans la liste.</translation>
</message>
<message>
- <location filename="../map/IMapList.ui" line="141"/>
+ <location filename="../map/IMapList.ui" line="129"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../map/IMapList.ui" line="149"/>
<source>Activate</source>
<translation>Activer</translation>
</message>
@@ -3042,6 +3069,12 @@ n'est pas une définition de système de coordonnées:
<translation>...</translation>
</message>
<message>
+ <location filename="../map/IMapPathSetup.ui" line="185"/>
+ <source>Help! I want maps!
+I don't want to read the documentation!</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<location filename="../map/IMapPathSetup.ui" line="29"/>
<location filename="../map/IMapPathSetup.ui" line="135"/>
<source>-</source>
@@ -3154,22 +3187,22 @@ n'est pas une définition de système de coordonnées:
<context>
<name>IMouseEditLine</name>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points?</source>
<translation>Ajouter les points ?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="338"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="344"/>
<source>Add points to temporary line?</source>
<translation>Ajouter les points à la ligne temporaire ?</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>Warning!</source>
<translation>Avertissement !</translation>
</message>
<message>
- <location filename="../mouse/IMouseEditLine.cpp" line="881"/>
+ <location filename="../mouse/IMouseEditLine.cpp" line="887"/>
<source>This will replace all data of the orignal by a simple line of coordinates. All other data will be lost permanently.</source>
<translation>Ceci remplacera les données de l'original par une ligne simple de coordonnées. Toutes les autres données seront définitivement perdues.</translation>
</message>
@@ -3191,17 +3224,22 @@ n'est pas une définition de système de coordonnées:
<context>
<name>IPlot</name>
<message>
- <location filename="../plot/IPlot.cpp" line="101"/>
+ <location filename="../plot/IPlot.cpp" line="108"/>
+ <source>Stop Range</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../plot/IPlot.cpp" line="109"/>
<source>Save...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="500"/>
+ <location filename="../plot/IPlot.cpp" line="602"/>
<source>No or bad data.</source>
<translation>Aucune donnée ou données invalides.</translation>
</message>
<message>
- <location filename="../plot/IPlot.cpp" line="1015"/>
+ <location filename="../plot/IPlot.cpp" line="1128"/>
<source>Select output file</source>
<translation type="unfinished"></translation>
</message>
@@ -3989,7 +4027,7 @@ or
<context>
<name>QObject</name>
<message>
- <location filename="../device/CDeviceGarmin.cpp" line="202"/>
+ <location filename="../device/CDeviceGarmin.cpp" line="207"/>
<source>Picture%1</source>
<translation>Image%1</translation>
</message>
@@ -4016,17 +4054,17 @@ or
</message>
<message>
<location filename="../gis/CGisListDB.cpp" line="408"/>
- <location filename="../gis/prj/IGisProject.cpp" line="330"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="346"/>
<source>Delete...</source>
<translation>Supprimer...</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Delete project...</source>
<translation>Supprimer le projet</translation>
</message>
<message>
- <location filename="../gis/CGisListWks.cpp" line="910"/>
+ <location filename="../gis/CGisListWks.cpp" line="944"/>
<source>Do you really want to delete %1?</source>
<translation>Êtes-vous sûr de vouloir supprimer %1?</translation>
</message>
@@ -4211,7 +4249,7 @@ ligne %2, colonne %3:
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="142"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="45"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="184"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
<source>_Clone</source>
<translation>_Clone</translation>
@@ -4259,59 +4297,69 @@ ligne %2, colonne %3:
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="520"/>
<location filename="../gis/rte/CGisItemRte.cpp" line="139"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1739"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="376"/>
<source>Changed links</source>
<translation>Liens modifiés...</translation>
</message>
<message>
<location filename="../gis/ovl/CGisItemOvlArea.cpp" line="532"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1751"/>
<source>Changed color</source>
<translation>Couleur modifiée...</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>Save project?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="66"/>
+ <source>The project "%1" was changed. Save befor closing it?</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/prj/IGisProject.cpp" line="255"/>
<source><br/>
Filename: %1</source>
<translation><br/>
Nom de fichier: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="256"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="272"/>
<source>Waypoints: %1</source>
<translation>Waypoints: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="260"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="276"/>
<source>Tracks: %1</source>
<translation>Traces: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="264"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="280"/>
<source>Routes: %1</source>
<translation>Routes: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="268"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="284"/>
<source>Areas: %1</source>
<translation>Surfaces: %1</translation>
</message>
<message>
- <location filename="../gis/prj/IGisProject.cpp" line="329"/>
+ <location filename="../gis/prj/IGisProject.cpp" line="345"/>
<source>Are you sure you want to delete '%1' from project '%2'?</source>
<translation>Êtes-vous sûr de vouloir supprimer %1 du projet '%2'?</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1727"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="364"/>
<source>Changed comment</source>
<translation>Commentaire modifié</translation>
</message>
<message>
<location filename="../gis/rte/CGisItemRte.cpp" line="133"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1733"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
<source>Changed description</source>
<translation>Description modifiée</translation>
@@ -4320,16 +4368,16 @@ Nom de fichier: %1</translation>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Error...</source>
<translation>Erreur...</translation>
</message>
@@ -4337,134 +4385,170 @@ Nom de fichier: %1</translation>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="87"/>
<location filename="../gis/tnv/CTwoNavProject.cpp" line="191"/>
<location filename="../gis/tnv/serialization.cpp" line="295"/>
- <location filename="../gis/tnv/serialization.cpp" line="416"/>
- <location filename="../gis/tnv/serialization.cpp" line="618"/>
+ <location filename="../gis/tnv/serialization.cpp" line="431"/>
+ <location filename="../gis/tnv/serialization.cpp" line="632"/>
<source>Failed to open %1.</source>
<translation>Impossible d'ouvrir %1</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="445"/>
- <location filename="../gis/tnv/serialization.cpp" line="456"/>
- <location filename="../gis/tnv/serialization.cpp" line="646"/>
- <location filename="../gis/tnv/serialization.cpp" line="657"/>
+ <location filename="../gis/tnv/serialization.cpp" line="460"/>
+ <location filename="../gis/tnv/serialization.cpp" line="471"/>
+ <location filename="../gis/tnv/serialization.cpp" line="660"/>
+ <location filename="../gis/tnv/serialization.cpp" line="671"/>
<source>Only support lon/lat WGS 84 format.</source>
<translation>Le seul format lon/lat autorisé est WGS 84</translation>
</message>
<message>
- <location filename="../gis/tnv/serialization.cpp" line="477"/>
- <location filename="../gis/tnv/serialization.cpp" line="675"/>
- <location filename="../gis/tnv/serialization.cpp" line="703"/>
- <location filename="../gis/tnv/serialization.cpp" line="777"/>
+ <location filename="../gis/tnv/serialization.cpp" line="492"/>
+ <location filename="../gis/tnv/serialization.cpp" line="689"/>
+ <location filename="../gis/tnv/serialization.cpp" line="717"/>
+ <location filename="../gis/tnv/serialization.cpp" line="791"/>
<source>Failed to read data.</source>
<translation>Impossible de lire les données.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="326"/>
<source>Changed trackpoints, sacrificed all previous data.</source>
<translation>Points de la trace modifiés, Les données antérieures sont perdues.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
<source>Length: %1 %2</source>
<translation>Longueur: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="409"/>
<source>, %1%2 %3, %4%5 %6</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
<source>Time: %1</source>
<translation>Durée: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="420"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
<source>, Speed: %1 %2</source>
<translation>, vitesse %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="427"/>
<source>Moving: %1</source>
<translation>Déplacement: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
<source>Start: %1</source>
<translation>Début: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="441"/>
<source>End: %1</source>
<translation>Fin: %1</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="445"/>
<source>Points: %1 (%2)</source>
<translation></translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="563"/>
<source>Ele.: %1 %2</source>
<translation>Altitude: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="566"/>
<source> slope: %1%3 (%2%)</source>
<translation> Pente: %1%3(%2%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="571"/>
<source> speed: %1%2</source>
<translation> Vitesse: %1 %2</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="583"/>
<source>Ascend: %1%2 (%3%)</source>
<translation>Montée: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="587"/>
<source>Ascend: - (-)</source>
<translation>Montées: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
<source> Descend: %1%2 (%3%)</source>
<translation> Descente: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="597"/>
<source> Descend: - (-) </source>
<translation>Descente: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="604"/>
<source>Dist.: %1%2 (%3%)</source>
<translation>Dist.: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
<source>Dist.: - (-)</source>
<translation>Dist.: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="614"/>
<source> Moving: %1%2 (%3%)</source>
<translation> En mouvement: %1%2 (%3%)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="618"/>
<source> Moving: - (-) </source>
<translation>En mouvement: - (-)</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
+ <source>Ascend: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="642"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="659"/>
+ <source>, %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+ <source>Ascend: -</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+ <source> Descend: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="664"/>
+ <source>Descend: -</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="670"/>
+ <source>Dist.: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="675"/>
+ <source> Time: %1%2</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="190"/>
<location filename="../mouse/CMouseEditArea.cpp" line="100"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
@@ -4472,27 +4556,27 @@ Nom de fichier: %1</translation>
<translation>Éditer le nom...</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1027"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1042"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1061"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1120"/>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1278"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1152"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1167"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1186"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1245"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1405"/>
<location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
<source>Enter new track name.</source>
<translation>Saisir le nouveau nom de la trace.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1334"/>
<source>Hide points.</source>
<translation>Cacher des points.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1380"/>
<source>Show points.</source>
<translation>Afficher les points.</translation>
</message>
<message>
- <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
+ <location filename="../gis/trk/CGisItemTrk.cpp" line="1721"/>
<location filename="../gis/wpt/CGisItemWpt.cpp" line="324"/>
<source>Changed name</source>
<translation>Nom modifié</translation>
@@ -4642,5 +4726,10 @@ Nom de fichier: %1</translation>
<source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
<translation>Le nombre de points de trace ne correspond pas au nombre des points cachés</translation>
</message>
+ <message>
+ <location filename="../device/IDevice.cpp" line="202"/>
+ <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
</TS>
diff --git a/src/main.cpp b/src/main.cpp
index 3ce9951..a8c7eaa 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -140,7 +140,7 @@ int main(int argc, char ** argv)
dirList << QCoreApplication::applicationDirPath().replace(QRegExp("bin$"), "share/qmapshack/translations");
// dirList << "./src";
- QTranslator *qlandkartegtTranslator = new QTranslator(0);
+ QTranslator *qlandkartegtTranslator = new QTranslator(&a);
foreach(QString dir, dirList)
{
QString transName = QLatin1String("qmapshack_") + locale;
diff --git a/src/map/CMapDraw.cpp b/src/map/CMapDraw.cpp
index e583bb9..208ffbd 100644
--- a/src/map/CMapDraw.cpp
+++ b/src/map/CMapDraw.cpp
@@ -68,12 +68,20 @@ void CMapDraw::setProjection(const QString& proj)
void CMapDraw::setupMapPath()
{
- CMapPathSetup dlg(mapPaths, cachePath);
+ QStringList paths = mapPaths;
+ CMapPathSetup dlg(paths, cachePath);
if(dlg.exec() != QDialog::Accepted)
{
return;
}
+ setupMapPath(paths);
+}
+
+void CMapDraw::setupMapPath(const QStringList& paths)
+{
+ mapPaths = paths;
+
foreach(CMapDraw * map, maps)
{
QStringList keys;
diff --git a/src/map/CMapDraw.h b/src/map/CMapDraw.h
index 3e9c7ee..1418f2a 100644
--- a/src/map/CMapDraw.h
+++ b/src/map/CMapDraw.h
@@ -75,6 +75,7 @@ public:
void setProjection(const QString& proj);
static void setupMapPath();
+ static void setupMapPath(const QStringList& paths);
static void saveMapPath(QSettings &cfg);
static void loadMapPath(QSettings &cfg);
static const QStringList& getSupportedFormats()
diff --git a/src/map/CMapIMG.cpp b/src/map/CMapIMG.cpp
index 267f660..01026c6 100644
--- a/src/map/CMapIMG.cpp
+++ b/src/map/CMapIMG.cpp
@@ -39,6 +39,8 @@
#define STREETNAME_THRESHOLD 5.0
+int CFileExt::cnt = 0;
+
static inline bool isCompletlyOutside(const QPolygonF& poly, const QRectF &viewport)
{
qreal north = -90.0 * DEG_TO_RAD;
@@ -445,7 +447,7 @@ void CMapIMG::readFile(CFileExt& file, quint32 offset, quint32 size, QByteArray&
throw exce_t(eErrOpen, tr("Failed to read: ") + filename);
}
- data = QByteArray::fromRawData(file.data(offset), size);
+ data = QByteArray::fromRawData(file.data(offset, size), size);
// wenn mask == 0 ist kein xor noetig
if(mask == 0)
{
@@ -488,7 +490,7 @@ void CMapIMG::readBasics()
throw exce_t(eErrOpen, tr("Failed to open: ") + filename);
}
- mask = (quint8)*file.data(0);
+ mask = (quint8)*file.data(0,1);
mask32 = mask;
mask32 <<= 8;
@@ -690,7 +692,7 @@ void CMapIMG::readSubfileBasics(subfile_desc_t& subfile, CFileExt &file)
qDebug() << "TRE2 size :" << dec << gar_load(uint32_t, pTreHdr->tre2_size);
#endif // DEBUG_SHOW_TRE_DATA
- copyrights << QString(file.data(subfile.parts["TRE"].offset + gar_load(uint16_t, pTreHdr->length)));
+ copyrights << QString(file.data(subfile.parts["TRE"].offset + gar_load(uint16_t, pTreHdr->length),0x7FFF));
// read map boundaries from header
qint32 i32;
@@ -1333,11 +1335,13 @@ void CMapIMG::draw(IDrawContext::buffer_t& buf)
void CMapIMG::loadVisibleData(bool fast, polytype_t& polygons, polytype_t& polylines, pointtype_t& points, pointtype_t& pois, unsigned level, const QRectF& viewport, QPainter& p)
{
+#ifndef Q_OS_WIN32
CFileExt file(filename);
if(!file.open(QIODevice::ReadOnly))
{
return;
}
+#endif
QMap<QString,subfile_desc_t>::const_iterator subfile = subfiles.constBegin();
while(subfile != subfiles.constEnd())
@@ -1346,6 +1350,7 @@ void CMapIMG::loadVisibleData(bool fast, polytype_t& polygons, polytype_t& polyl
// qDebug() << (viewport.topLeft() * RAD_TO_DEG) << (viewport.bottomRight() * RAD_TO_DEG);
// qDebug() << (subfile->area.topLeft() * RAD_TO_DEG) << (subfile->area.bottomRight() * RAD_TO_DEG);
// qDebug() << subfile->area.intersects(viewport);
+
if(!subfile->area.intersects(viewport))
{
++subfile;
@@ -1357,6 +1362,14 @@ void CMapIMG::loadVisibleData(bool fast, polytype_t& polygons, polytype_t& polyl
break;
}
+#ifdef Q_OS_WIN32
+ CFileExt file(filename);
+ if(!file.open(QIODevice::ReadOnly))
+ {
+ return;
+ }
+#endif
+
QByteArray rgndata;
readFile(file, subfile->parts["RGN"].offset, subfile->parts["RGN"].size, rgndata);
@@ -1414,9 +1427,15 @@ void CMapIMG::loadVisibleData(bool fast, polytype_t& polygons, polytype_t& polyl
#endif // DEBUG_SHOW_SUBDIV_BORDERS
++subfile;
+
+#ifdef Q_OS_WIN32
+ file.close();
+#endif
}
+#ifndef Q_OS_WIN32
file.close();
+#endif
}
void CMapIMG::loadSubDiv(CFileExt &file, const subdiv_desc_t& subdiv, IGarminStrTbl * strtbl, const QByteArray& rgndata, bool fast, const QRectF& viewport, polytype_t& polylines, polytype_t& polygons, pointtype_t& points, pointtype_t& pois)
diff --git a/src/map/CMapList.cpp b/src/map/CMapList.cpp
index 0ba43e0..dfa5ff9 100644
--- a/src/map/CMapList.cpp
+++ b/src/map/CMapList.cpp
@@ -16,6 +16,8 @@
**********************************************************************************************/
+#include "CMainWindow.h"
+#include "map/CMapDraw.h"
#include "map/CMapItem.h"
#include "map/CMapList.h"
@@ -66,9 +68,10 @@ CMapList::CMapList(QWidget *parent)
setupUi(this);
connect(treeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint)));
+ connect(treeWidget, SIGNAL(sigChanged()), SIGNAL(sigChanged()));
connect(actionActivate, SIGNAL(triggered()), this, SLOT(slotActivate()));
+ connect(pushMapHonk, SIGNAL(clicked()), this, SLOT(slotMapHonk()));
- connect(treeWidget, SIGNAL(sigChanged()), SIGNAL(sigChanged()));
menu = new QMenu(this);
menu->addAction(actionActivate);
@@ -98,11 +101,13 @@ void CMapList::updateHelpText()
if(treeWidget->topLevelItemCount() == 0)
{
labelIcon->show();
+ pushMapHonk->show();
labelHelpFillMapList->show();
labelHelpActivateMap->hide();
}
else
{
+ pushMapHonk->hide();
labelHelpFillMapList->hide();
CMapItem * item = dynamic_cast<CMapItem*>(treeWidget->topLevelItem(0));
@@ -152,3 +157,39 @@ void CMapList::slotContextMenu(const QPoint& point)
QPoint p = treeWidget->mapToGlobal(point);
menu->exec(p);
}
+
+void saveResource(const QString& name, QDir& dir)
+{
+ QFile resource1(QString("://map/%1").arg(name));
+ resource1.open(QIODevice::ReadOnly);
+
+ QFile file(dir.absoluteFilePath(name));
+ file.open(QIODevice::WriteOnly);
+ file.write(resource1.readAll());
+ file.close();
+}
+
+void CMapList::slotMapHonk()
+{
+ QString path = QFileDialog::getExistingDirectory(&CMainWindow::self(), tr("Where do you want to store maps?"), QDir::homePath());
+ if(path.isEmpty())
+ {
+ return;
+ }
+
+ QDir dir(path);
+
+ saveResource("WorldSat.wmts", dir);
+ saveResource("WorldTopo.wmts", dir);
+ saveResource("OpenStreetMap.tms", dir);
+ saveResource("OSM_Topo.tms", dir);
+ saveResource("OpenCycleMap.tms", dir);
+
+ CMapDraw::setupMapPath(QStringList(QStringList(path)));
+
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->setScales(CCanvas::eScalesSquare);
+ }
+}
diff --git a/src/map/CMapList.h b/src/map/CMapList.h
index ae45068..e09d747 100644
--- a/src/map/CMapList.h
+++ b/src/map/CMapList.h
@@ -64,6 +64,9 @@ public:
signals:
void sigChanged();
+public slots:
+ static void slotMapHonk();
+
private slots:
void slotActivate();
void slotContextMenu(const QPoint &point);
diff --git a/src/map/CMapPathSetup.cpp b/src/map/CMapPathSetup.cpp
index c34175d..83c4daa 100644
--- a/src/map/CMapPathSetup.cpp
+++ b/src/map/CMapPathSetup.cpp
@@ -19,6 +19,7 @@
#include "CMainWindow.h"
#include "map/CMapDraw.h"
#include "map/CMapPathSetup.h"
+#include "map/CMapList.h"
#include <QtWidgets>
@@ -32,6 +33,7 @@ CMapPathSetup::CMapPathSetup(QStringList &paths, QString& pathCache)
connect(toolAdd, SIGNAL(clicked()), this, SLOT(slotAddPath()));
connect(toolDelete, SIGNAL(clicked()), this, SLOT(slotDelPath()));
connect(listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(slotItemSelectionChanged()));
+ connect(pushMapHonk, SIGNAL(clicked()), this, SLOT(slotMapHonk()));
foreach(const QString &path, paths)
{
@@ -82,6 +84,12 @@ void CMapPathSetup::slotChangeCachePath()
labelCacheRoot->setText(path);
}
+void CMapPathSetup::slotMapHonk()
+{
+ CMapList::slotMapHonk();
+ close();
+}
+
void CMapPathSetup::accept()
{
paths.clear();
diff --git a/src/map/CMapPathSetup.h b/src/map/CMapPathSetup.h
index a5aabd5..004e8f7 100644
--- a/src/map/CMapPathSetup.h
+++ b/src/map/CMapPathSetup.h
@@ -37,7 +37,7 @@ private slots:
void slotDelPath();
void slotItemSelectionChanged();
void slotChangeCachePath();
-
+ void slotMapHonk();
private:
QStringList& paths;
diff --git a/src/map/CMapTMS.cpp b/src/map/CMapTMS.cpp
index e164b16..bd8fb6d 100644
--- a/src/map/CMapTMS.cpp
+++ b/src/map/CMapTMS.cpp
@@ -405,6 +405,13 @@ void CMapTMS::draw(IDrawContext::buffer_t& buf)
return;
}
+ QPointF bufferScale = buf.scale * buf.zoomFactor;
+
+ if(isOutOfScale(bufferScale))
+ {
+ return;
+ }
+
// get pixel offset of top left buffer corner
QPointF pp = buf.ref1;
map->convertRad2Px(pp);
diff --git a/src/map/CMapWMTS.cpp b/src/map/CMapWMTS.cpp
index 73d3ada..cb6a7ef 100644
--- a/src/map/CMapWMTS.cpp
+++ b/src/map/CMapWMTS.cpp
@@ -432,6 +432,14 @@ void CMapWMTS::draw(IDrawContext::buffer_t& buf)
return;
}
+ QPointF bufferScale = buf.scale * buf.zoomFactor;
+
+ if(isOutOfScale(bufferScale))
+ {
+ return;
+ }
+
+
// get pixel offset of top left buffer corner
QPointF pp = buf.ref1;
map->convertRad2Px(pp);
diff --git a/src/map/IMap.cpp b/src/map/IMap.cpp
index 13c8600..98e288f 100644
--- a/src/map/IMap.cpp
+++ b/src/map/IMap.cpp
@@ -114,8 +114,8 @@ void IMap::drawTile(QImage& img, QPolygonF& l, QPainter& p)
qreal dy1 = l[0].y() - l[1].y();
qreal dx2 = l[0].x() - l[3].x();
qreal dy2 = l[0].y() - l[3].y();
- qreal w = qCeil( qSqrt(dx1*dx1 + dy1*dy1));
- qreal h = qCeil( qSqrt(dx2*dx2 + dy2*dy2));
+ qreal w = qCeil( qSqrt(dx1*dx1 + dy1*dy1));
+ qreal h = qCeil( qSqrt(dx2*dx2 + dy2*dy2));
// calculate rotation. This is not really a reprojection but might be good enough for close zoom levels
qreal a = qAtan(dy1/dx1) * RAD_TO_DEG;
diff --git a/src/map/IMapList.ui b/src/map/IMapList.ui
index 68c6c23..213a84e 100644
--- a/src/map/IMapList.ui
+++ b/src/map/IMapList.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>400</width>
- <height>622</height>
+ <height>443</height>
</rect>
</property>
<property name="windowTitle">
@@ -123,6 +123,14 @@
</property>
</widget>
</item>
+ <item>
+ <widget class="QPushButton" name="pushMapHonk">
+ <property name="text">
+ <string>Help! I want maps!
+I don't want to read the documentation!</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
</layout>
diff --git a/src/map/IMapPathSetup.ui b/src/map/IMapPathSetup.ui
index 69fd920..5761e9a 100644
--- a/src/map/IMapPathSetup.ui
+++ b/src/map/IMapPathSetup.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>450</width>
- <height>265</height>
+ <height>275</height>
</rect>
</property>
<property name="windowTitle">
@@ -179,6 +179,14 @@
</item>
</layout>
</item>
+ <item>
+ <widget class="QPushButton" name="pushMapHonk">
+ <property name="text">
+ <string>Help! I want maps!
+I don't want to read the documentation!</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
<resources>
diff --git a/src/map/OSM_Topo.tms b/src/map/OSM_Topo.tms
new file mode 100644
index 0000000..250cbf9
--- /dev/null
+++ b/src/map/OSM_Topo.tms
@@ -0,0 +1,21 @@
+<TMS>
+ <Title>OSM D-Land TK 50</Title>
+ <MinZoomLevel>3</MinZoomLevel>
+ <MaxZoomLevel>18</MaxZoomLevel>
+ <Layer idx="0">
+ <Title>Open Topo Map</Title>
+ <ServerUrl>http://a.tile.opentopomap.org/%1/%2/%3.png</ServerUrl>
+ <MinZoomLevel>3</MinZoomLevel>
+ <MaxZoomLevel>11</MaxZoomLevel>
+ </Layer>
+ <Layer idx="1">
+ <Title>Trails</Title>
+ <ServerUrl>http://tile.waymarkedtrails.org/hiking/%1/%2/%3.png</ServerUrl>
+ <MinZoomLevel>3</MinZoomLevel>
+ <MaxZoomLevel>9</MaxZoomLevel>
+ </Layer>
+ <RawHeader>
+ <Value name="User-Agent">Whatever</Value>
+ </RawHeader>
+ <Copyright>Map data: (c) OpenStreetMap contributors, ODbL | Rendering: (c) OpenTopoMap, CC-BY-SA | Trails by tile.waymarkedtrails.org </Copyright>
+</TMS>
\ No newline at end of file
diff --git a/src/map/OpenCycleMap.tms b/src/map/OpenCycleMap.tms
new file mode 100644
index 0000000..57a4e87
--- /dev/null
+++ b/src/map/OpenCycleMap.tms
@@ -0,0 +1,9 @@
+<TMS>
+ <Title>Opencyclemap</Title>
+ <MinZoomLevel>1</MinZoomLevel>
+ <MaxZoomLevel>1024</MaxZoomLevel>
+ <Layer idx="0">
+ <ServerUrl>http://a.tile.thunderforest.com/cycle/%1/%2/%3.png</ServerUrl>
+ </Layer>
+ <Copyright>Map data: (c) OpenStreetMap contributors, ODbL | Rendering: (c) OpenCycleMap , CC-BY-SA</Copyright>
+</TMS>
diff --git a/src/map/OpenStreetMap.tms b/src/map/OpenStreetMap.tms
new file mode 100644
index 0000000..eed3c00
--- /dev/null
+++ b/src/map/OpenStreetMap.tms
@@ -0,0 +1,14 @@
+<TMS>
+ <Title>OpenStreetMap</Title>
+ <MinZoomLevel>2</MinZoomLevel>
+ <MaxZoomLevel>19</MaxZoomLevel>
+ <Layer idx="0">
+ <ServerUrl>https://c.tile.openstreetmap.org/%1/%2/%3.png</ServerUrl>
+ </Layer>
+ <RawHeader>
+ <Value name="User-Agent">Agent Smith</Value>
+ </RawHeader>
+ <Copyright>Map data: (c) OpenStreetMap contributors, ODbL | Rendering: (c) OpenStreetMap , CC-BY-SA</Copyright>
+</TMS>
+
+
diff --git a/src/map/WorldSat.wmts b/src/map/WorldSat.wmts
new file mode 100644
index 0000000..c78103a
--- /dev/null
+++ b/src/map/WorldSat.wmts
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
+<!-- Service Identification --> <ows:ServiceIdentification>
+<ows:Title>World_Imagery</ows:Title>
+<ows:ServiceType>OGC WMTS</ows:ServiceType>
+<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
+</ows:ServiceIdentification> <!-- Operations Metadata --> <ows:OperationsMetadata>
+<ows:Operation name="GetCapabilities">
+<ows:DCP>
+<ows:HTTP>
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>RESTful</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+<!-- add KVP binding in 10.1 -->
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS?">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>KVP</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+</ows:HTTP>
+</ows:DCP>
+</ows:Operation>
+<ows:Operation name="GetTile">
+<ows:DCP>
+<ows:HTTP>
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/tile/1.0.0/">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>RESTful</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS?">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>KVP</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+</ows:HTTP>
+</ows:DCP>
+</ows:Operation>
+</ows:OperationsMetadata> <Contents>
+<!--Layer--> <Layer>
+<ows:Title>World_Imagery</ows:Title> <ows:Identifier>World_Imagery</ows:Identifier>
+<ows:BoundingBox crs="urn:ogc:def:crs:EPSG::3857">
+<ows:LowerCorner>-2.003750722959434E7 -1.997186888040859E7</ows:LowerCorner>
+<ows:UpperCorner>2.003750722959434E7 1.9971868880408563E7</ows:UpperCorner>
+</ows:BoundingBox> <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
+<ows:LowerCorner>-179.99999000000003 -85.00000000000003</ows:LowerCorner>
+<ows:UpperCorner>179.99999000000003 85.0</ows:UpperCorner>
+</ows:WGS84BoundingBox>
+<Style isDefault="true">
+<ows:Title>Default Style</ows:Title>
+<ows:Identifier>default</ows:Identifier>
+</Style>
+<Format>image/jpg</Format>
+<TileMatrixSetLink>
+<TileMatrixSet>default028mm</TileMatrixSet>
+</TileMatrixSetLink>
+<TileMatrixSetLink>
+<!--Only show this TileMatrixSet if the tiling scheme is compliant to Google Maps (and that happens with tile width = 256 px)-->
+<TileMatrixSet>GoogleMapsCompatible</TileMatrixSet>
+</TileMatrixSetLink>
+<ResourceURL format="image/jpg" resourceType="tile" template="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/tile/1.0.0/World_Imagery/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpg"/>
+</Layer> <!--TileMatrixSet-->
+<TileMatrixSet>
+<ows:Title>TileMatrix using 0.28mm</ows:Title>
+<ows:Abstract>The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel).</ows:Abstract> <ows:Identifier>default028mm</ows:Identifier>
+<ows:SupportedCRS>urn:ogc:def:crs:EPSG::3857</ows:SupportedCRS>
+<TileMatrix>
+<ows:Identifier>0</ows:Identifier>
+<ScaleDenominator>5.590822640285016E8</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>1</MatrixWidth> <MatrixHeight>1</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>1</ows:Identifier>
+<ScaleDenominator>2.7954113201425034E8</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>2</MatrixWidth> <MatrixHeight>2</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>2</ows:Identifier>
+<ScaleDenominator>1.3977056600712562E8</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>4</MatrixWidth> <MatrixHeight>4</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>3</ows:Identifier>
+<ScaleDenominator>6.988528300356235E7</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>8</MatrixWidth> <MatrixHeight>8</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>4</ows:Identifier>
+<ScaleDenominator>3.494264150178117E7</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>16</MatrixWidth> <MatrixHeight>16</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>5</ows:Identifier>
+<ScaleDenominator>1.7471320750890587E7</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>32</MatrixWidth> <MatrixHeight>32</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>6</ows:Identifier>
+<ScaleDenominator>8735660.375445293</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>64</MatrixWidth> <MatrixHeight>64</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>7</ows:Identifier>
+<ScaleDenominator>4367830.187722647</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>128</MatrixWidth> <MatrixHeight>128</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>8</ows:Identifier>
+<ScaleDenominator>2183915.0938617955</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>256</MatrixWidth> <MatrixHeight>256</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>9</ows:Identifier>
+<ScaleDenominator>1091957.5469304253</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>512</MatrixWidth> <MatrixHeight>512</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>10</ows:Identifier>
+<ScaleDenominator>545978.7734656851</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>1024</MatrixWidth> <MatrixHeight>1023</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>11</ows:Identifier>
+<ScaleDenominator>272989.38673237007</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>2048</MatrixWidth> <MatrixHeight>2045</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>12</ows:Identifier>
+<ScaleDenominator>136494.69336618503</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>4096</MatrixWidth> <MatrixHeight>4090</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>13</ows:Identifier>
+<ScaleDenominator>68247.34668309252</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>8192</MatrixWidth> <MatrixHeight>8179</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>14</ows:Identifier>
+<ScaleDenominator>34123.67334154626</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>16384</MatrixWidth> <MatrixHeight>16358</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>15</ows:Identifier>
+<ScaleDenominator>17061.836671245605</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>32768</MatrixWidth> <MatrixHeight>32715</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>16</ows:Identifier>
+<ScaleDenominator>8530.918335622802</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>65536</MatrixWidth> <MatrixHeight>65429</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>17</ows:Identifier>
+<ScaleDenominator>4265.459167338929</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>131072</MatrixWidth> <MatrixHeight>130858</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>18</ows:Identifier>
+<ScaleDenominator>2132.729584141936</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>262144</MatrixWidth> <MatrixHeight>261715</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>19</ows:Identifier>
+<ScaleDenominator>1066.3647915984968</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>524288</MatrixWidth> <MatrixHeight>523430</MatrixHeight>
+</TileMatrix>
+</TileMatrixSet>
+<TileMatrixSet>
+<ows:Title>GoogleMapsCompatible</ows:Title>
+<ows:Abstract>the wellknown 'GoogleMapsCompatible' tile matrix set defined by OGC WMTS specification</ows:Abstract>
+<ows:Identifier>GoogleMapsCompatible</ows:Identifier>
+<ows:SupportedCRS>urn:ogc:def:crs:EPSG:6.18.3:3857</ows:SupportedCRS>
+<WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible</WellKnownScaleSet>
+<TileMatrix>
+<ows:Identifier>0</ows:Identifier>
+<ScaleDenominator>559082264.0287178</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>1</MatrixWidth>
+<MatrixHeight>1</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>1</ows:Identifier>
+<ScaleDenominator>279541132.0143589</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>2</MatrixWidth>
+<MatrixHeight>2</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>2</ows:Identifier>
+<ScaleDenominator>139770566.0071794</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>4</MatrixWidth>
+<MatrixHeight>4</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>3</ows:Identifier>
+<ScaleDenominator>69885283.00358972</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>8</MatrixWidth>
+<MatrixHeight>8</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>4</ows:Identifier>
+<ScaleDenominator>34942641.50179486</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>16</MatrixWidth>
+<MatrixHeight>16</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>5</ows:Identifier>
+<ScaleDenominator>17471320.75089743</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>32</MatrixWidth>
+<MatrixHeight>32</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>6</ows:Identifier>
+<ScaleDenominator>8735660.375448715</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>64</MatrixWidth>
+<MatrixHeight>64</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>7</ows:Identifier>
+<ScaleDenominator>4367830.187724357</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>128</MatrixWidth>
+<MatrixHeight>128</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>8</ows:Identifier>
+<ScaleDenominator>2183915.093862179</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>256</MatrixWidth>
+<MatrixHeight>256</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>9</ows:Identifier>
+<ScaleDenominator>1091957.546931089</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>512</MatrixWidth>
+<MatrixHeight>512</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>10</ows:Identifier>
+<ScaleDenominator>545978.7734655447</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>1024</MatrixWidth>
+<MatrixHeight>1024</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>11</ows:Identifier>
+<ScaleDenominator>272989.3867327723</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>2048</MatrixWidth>
+<MatrixHeight>2048</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>12</ows:Identifier>
+<ScaleDenominator>136494.6933663862</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>4096</MatrixWidth>
+<MatrixHeight>4096</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>13</ows:Identifier>
+<ScaleDenominator>68247.34668319309</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>8192</MatrixWidth>
+<MatrixHeight>8192</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>14</ows:Identifier>
+<ScaleDenominator>34123.67334159654</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>16384</MatrixWidth>
+<MatrixHeight>16384</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>15</ows:Identifier>
+<ScaleDenominator>17061.83667079827</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>32768</MatrixWidth>
+<MatrixHeight>32768</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>16</ows:Identifier>
+<ScaleDenominator>8530.918335399136</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>65536</MatrixWidth>
+<MatrixHeight>65536</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>17</ows:Identifier>
+<ScaleDenominator>4265.459167699568</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>131072</MatrixWidth>
+<MatrixHeight>131072</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>18</ows:Identifier>
+<ScaleDenominator>2132.729583849784</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>262144</MatrixWidth>
+<MatrixHeight>262144</MatrixHeight>
+</TileMatrix>
+</TileMatrixSet>
+</Contents>
+<ServiceMetadataURL xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml"/> </Capabilities>
\ No newline at end of file
diff --git a/src/map/WorldTopo.wmts b/src/map/WorldTopo.wmts
new file mode 100644
index 0000000..256e428
--- /dev/null
+++ b/src/map/WorldTopo.wmts
@@ -0,0 +1,377 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
+<!-- Service Identification --> <ows:ServiceIdentification>
+<ows:Title>World_Topo_Map</ows:Title>
+<ows:ServiceType>OGC WMTS</ows:ServiceType>
+<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
+</ows:ServiceIdentification> <!-- Operations Metadata --> <ows:OperationsMetadata>
+<ows:Operation name="GetCapabilities">
+<ows:DCP>
+<ows:HTTP>
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/1.0.0/WMTSCapabilities.xml">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>RESTful</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+<!-- add KVP binding in 10.1 -->
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS?">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>KVP</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+</ows:HTTP>
+</ows:DCP>
+</ows:Operation>
+<ows:Operation name="GetTile">
+<ows:DCP>
+<ows:HTTP>
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/tile/1.0.0/">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>RESTful</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+<ows:Get xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS?">
+<ows:Constraint name="GetEncoding">
+<ows:AllowedValues>
+<ows:Value>KVP</ows:Value>
+</ows:AllowedValues>
+</ows:Constraint>
+</ows:Get>
+</ows:HTTP>
+</ows:DCP>
+</ows:Operation>
+</ows:OperationsMetadata> <Contents>
+<!--Layer--> <Layer>
+<ows:Title>World_Topo_Map</ows:Title> <ows:Identifier>World_Topo_Map</ows:Identifier>
+<ows:BoundingBox crs="urn:ogc:def:crs:EPSG::3857">
+<ows:LowerCorner>-2.0037507067161843E7 -1.9971868880408604E7</ows:LowerCorner>
+<ows:UpperCorner>2.0037507067161843E7 1.997186888040863E7</ows:UpperCorner>
+</ows:BoundingBox> <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
+<ows:LowerCorner>-179.9999885408441 -85.00000000000003</ows:LowerCorner>
+<ows:UpperCorner>179.9999885408441 85.00000000000006</ows:UpperCorner>
+</ows:WGS84BoundingBox>
+<Style isDefault="true">
+<ows:Title>Default Style</ows:Title>
+<ows:Identifier>default</ows:Identifier>
+</Style>
+<Format>image/jpg</Format>
+<TileMatrixSetLink>
+<TileMatrixSet>default028mm</TileMatrixSet>
+</TileMatrixSetLink>
+<TileMatrixSetLink>
+<!--Only show this TileMatrixSet if the tiling scheme is compliant to Google Maps (and that happens with tile width = 256 px)-->
+<TileMatrixSet>GoogleMapsCompatible</TileMatrixSet>
+</TileMatrixSetLink>
+<ResourceURL format="image/jpg" resourceType="tile" template="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/tile/1.0.0/World_Topo_Map/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpg"/>
+</Layer> <!--TileMatrixSet-->
+<TileMatrixSet>
+<ows:Title>TileMatrix using 0.28mm</ows:Title>
+<ows:Abstract>The tile matrix set that has scale values calculated based on the dpi defined by OGC specification (dpi assumes 0.28mm as the physical distance of a pixel).</ows:Abstract> <ows:Identifier>default028mm</ows:Identifier>
+<ows:SupportedCRS>urn:ogc:def:crs:EPSG::3857</ows:SupportedCRS>
+<TileMatrix>
+<ows:Identifier>0</ows:Identifier>
+<ScaleDenominator>5.590822640285016E8</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>1</MatrixWidth> <MatrixHeight>1</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>1</ows:Identifier>
+<ScaleDenominator>2.7954113201425034E8</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>2</MatrixWidth> <MatrixHeight>2</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>2</ows:Identifier>
+<ScaleDenominator>1.3977056600712562E8</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>4</MatrixWidth> <MatrixHeight>4</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>3</ows:Identifier>
+<ScaleDenominator>6.988528300356235E7</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>8</MatrixWidth> <MatrixHeight>8</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>4</ows:Identifier>
+<ScaleDenominator>3.494264150178117E7</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>16</MatrixWidth> <MatrixHeight>16</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>5</ows:Identifier>
+<ScaleDenominator>1.7471320750890587E7</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>32</MatrixWidth> <MatrixHeight>32</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>6</ows:Identifier>
+<ScaleDenominator>8735660.375445293</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>64</MatrixWidth> <MatrixHeight>64</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>7</ows:Identifier>
+<ScaleDenominator>4367830.187722647</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>128</MatrixWidth> <MatrixHeight>128</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>8</ows:Identifier>
+<ScaleDenominator>2183915.0938617955</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>256</MatrixWidth> <MatrixHeight>256</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>9</ows:Identifier>
+<ScaleDenominator>1091957.5469304253</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>512</MatrixWidth> <MatrixHeight>512</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>10</ows:Identifier>
+<ScaleDenominator>545978.7734656851</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>1024</MatrixWidth> <MatrixHeight>1023</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>11</ows:Identifier>
+<ScaleDenominator>272989.38673237007</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>2048</MatrixWidth> <MatrixHeight>2045</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>12</ows:Identifier>
+<ScaleDenominator>136494.69336618503</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>4096</MatrixWidth> <MatrixHeight>4090</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>13</ows:Identifier>
+<ScaleDenominator>68247.34668309252</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>8192</MatrixWidth> <MatrixHeight>8179</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>14</ows:Identifier>
+<ScaleDenominator>34123.67334154626</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>16384</MatrixWidth> <MatrixHeight>16358</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>15</ows:Identifier>
+<ScaleDenominator>17061.836671245605</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>32768</MatrixWidth> <MatrixHeight>32715</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>16</ows:Identifier>
+<ScaleDenominator>8530.918335622802</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>65536</MatrixWidth> <MatrixHeight>65429</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>17</ows:Identifier>
+<ScaleDenominator>4265.459167338929</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>131072</MatrixWidth> <MatrixHeight>130858</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>18</ows:Identifier>
+<ScaleDenominator>2132.729584141936</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>262144</MatrixWidth> <MatrixHeight>261715</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>19</ows:Identifier>
+<ScaleDenominator>1066.3647915984968</ScaleDenominator>
+<TopLeftCorner>-2.0037508342787E7 2.0037508342787E7</TopLeftCorner> <TileWidth>256</TileWidth> <TileHeight>256</TileHeight>
+<MatrixWidth>524288</MatrixWidth> <MatrixHeight>523430</MatrixHeight>
+</TileMatrix>
+</TileMatrixSet>
+<TileMatrixSet>
+<ows:Title>GoogleMapsCompatible</ows:Title>
+<ows:Abstract>the wellknown 'GoogleMapsCompatible' tile matrix set defined by OGC WMTS specification</ows:Abstract>
+<ows:Identifier>GoogleMapsCompatible</ows:Identifier>
+<ows:SupportedCRS>urn:ogc:def:crs:EPSG:6.18.3:3857</ows:SupportedCRS>
+<WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible</WellKnownScaleSet>
+<TileMatrix>
+<ows:Identifier>0</ows:Identifier>
+<ScaleDenominator>559082264.0287178</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>1</MatrixWidth>
+<MatrixHeight>1</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>1</ows:Identifier>
+<ScaleDenominator>279541132.0143589</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>2</MatrixWidth>
+<MatrixHeight>2</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>2</ows:Identifier>
+<ScaleDenominator>139770566.0071794</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>4</MatrixWidth>
+<MatrixHeight>4</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>3</ows:Identifier>
+<ScaleDenominator>69885283.00358972</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>8</MatrixWidth>
+<MatrixHeight>8</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>4</ows:Identifier>
+<ScaleDenominator>34942641.50179486</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>16</MatrixWidth>
+<MatrixHeight>16</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>5</ows:Identifier>
+<ScaleDenominator>17471320.75089743</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>32</MatrixWidth>
+<MatrixHeight>32</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>6</ows:Identifier>
+<ScaleDenominator>8735660.375448715</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>64</MatrixWidth>
+<MatrixHeight>64</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>7</ows:Identifier>
+<ScaleDenominator>4367830.187724357</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>128</MatrixWidth>
+<MatrixHeight>128</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>8</ows:Identifier>
+<ScaleDenominator>2183915.093862179</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>256</MatrixWidth>
+<MatrixHeight>256</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>9</ows:Identifier>
+<ScaleDenominator>1091957.546931089</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>512</MatrixWidth>
+<MatrixHeight>512</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>10</ows:Identifier>
+<ScaleDenominator>545978.7734655447</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>1024</MatrixWidth>
+<MatrixHeight>1024</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>11</ows:Identifier>
+<ScaleDenominator>272989.3867327723</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>2048</MatrixWidth>
+<MatrixHeight>2048</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>12</ows:Identifier>
+<ScaleDenominator>136494.6933663862</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>4096</MatrixWidth>
+<MatrixHeight>4096</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>13</ows:Identifier>
+<ScaleDenominator>68247.34668319309</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>8192</MatrixWidth>
+<MatrixHeight>8192</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>14</ows:Identifier>
+<ScaleDenominator>34123.67334159654</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>16384</MatrixWidth>
+<MatrixHeight>16384</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>15</ows:Identifier>
+<ScaleDenominator>17061.83667079827</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>32768</MatrixWidth>
+<MatrixHeight>32768</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>16</ows:Identifier>
+<ScaleDenominator>8530.918335399136</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>65536</MatrixWidth>
+<MatrixHeight>65536</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>17</ows:Identifier>
+<ScaleDenominator>4265.459167699568</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>131072</MatrixWidth>
+<MatrixHeight>131072</MatrixHeight>
+</TileMatrix>
+<TileMatrix>
+<ows:Identifier>18</ows:Identifier>
+<ScaleDenominator>2132.729583849784</ScaleDenominator>
+<TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
+<TileWidth>256</TileWidth>
+<TileHeight>256</TileHeight>
+<MatrixWidth>262144</MatrixWidth>
+<MatrixHeight>262144</MatrixHeight>
+</TileMatrix>
+</TileMatrixSet>
+</Contents>
+<ServiceMetadataURL xlink:href="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/WMTS/1.0.0/WMTSCapabilities.xml"/> </Capabilities>
\ No newline at end of file
diff --git a/src/map/garmin/IGarminStrTbl.cpp b/src/map/garmin/IGarminStrTbl.cpp
index 9324c11..de2b052 100644
--- a/src/map/garmin/IGarminStrTbl.cpp
+++ b/src/map/garmin/IGarminStrTbl.cpp
@@ -87,7 +87,7 @@ void IGarminStrTbl::readFile(CFileExt &file, quint32 offset, quint32 size, QByte
return;
}
- data = QByteArray::fromRawData(file.data(offset), size);
+ data = QByteArray::fromRawData(file.data(offset,size), size);
// wenn mask == 0 ist kein xor noetig
if(mask == 0)
{
diff --git a/src/mouse/CMouseEditTrk.cpp b/src/mouse/CMouseEditTrk.cpp
index c90662d..61c1f25 100644
--- a/src/mouse/CMouseEditTrk.cpp
+++ b/src/mouse/CMouseEditTrk.cpp
@@ -37,8 +37,8 @@ CMouseEditTrk::CMouseEditTrk(CGisItemTrk &trk, CGisDraw * gis, CCanvas * parent)
key = trk.getKey();
// reset any focus the track might have.
- trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
- trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick);
+ trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseEditTrk");
+ trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseEditTrk");
trk.looseUserFocus();
canvas->reportStatus(key.item, tr("<b>Edit Track Points</b><br/>Select a track point for more options.<br/>"));
diff --git a/src/mouse/CMouseNormal.cpp b/src/mouse/CMouseNormal.cpp
index 7e22924..0570e28 100644
--- a/src/mouse/CMouseNormal.cpp
+++ b/src/mouse/CMouseNormal.cpp
@@ -25,6 +25,7 @@
#include "gis/rte/CGisItemRte.h"
#include "gis/trk/CGisItemTrk.h"
#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CFadingIcon.h"
#include "mouse/CMouseNormal.h"
#include "mouse/CScrOptUnclutter.h"
@@ -58,7 +59,7 @@ void CMouseNormal::stopTracking()
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0)
{
- trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
+ trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseNormal");
}
}
}
@@ -66,6 +67,7 @@ void CMouseNormal::stopTracking()
void CMouseNormal::mousePressEvent(QMouseEvent * e)
{
point = e->pos();
+
if(e->button() == Qt::LeftButton)
{
lastPos = e->pos();
@@ -115,7 +117,7 @@ void CMouseNormal::mouseMoveEvent(QMouseEvent * e)
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0)
{
- trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove);
+ trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseNormal");
}
}
break;
@@ -148,10 +150,7 @@ void CMouseNormal::mouseReleaseEvent(QMouseEvent *e)
item->treeWidget()->setCurrentItem(item);
item->treeWidget()->scrollToItem(item, QAbstractItemView::PositionAtCenter);
- delete screenItemOption;
- screenItemOption = item->getScreenOptions(point, this);
-
- if(!screenItemOption.isNull())
+ if(setScreenOption(point, item))
{
stateItemSel = eStateShowItemOptions;
}
@@ -182,10 +181,7 @@ void CMouseNormal::mouseReleaseEvent(QMouseEvent *e)
item->treeWidget()->setCurrentItem(item);
item->treeWidget()->scrollToItem(item, QAbstractItemView::PositionAtCenter);
- delete screenItemOption;
- screenItemOption = item->getScreenOptions(screenUnclutter->getOrigin(), this);
-
- if(!screenItemOption.isNull())
+ if(setScreenOption(screenUnclutter->getOrigin(), item))
{
stateItemSel = eStateShowItemOptions;
break;
@@ -229,6 +225,20 @@ void CMouseNormal::wheelEvent(QWheelEvent * e)
stateItemSel = eStateIdle;
}
+bool CMouseNormal::setScreenOption(const QPoint& pt, IGisItem * item)
+{
+ CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+ if(trk && trk->setMouseFocusByPoint(pt, CGisItemTrk::eFocusMouseClick, "CMouseNormal") == NOPOINTF)
+ {
+ new CFadingIcon(pt, "://icons/48x48/NoGo.png", canvas);
+ return false;
+ }
+
+ delete screenItemOption;
+ screenItemOption = item->getScreenOptions(pt, this);
+
+ return !screenItemOption.isNull();
+}
void CMouseNormal::draw(QPainter& p, bool needsRedraw, const QRect &rect)
{
diff --git a/src/mouse/CMouseNormal.h b/src/mouse/CMouseNormal.h
index d34d985..cff0a6f 100644
--- a/src/mouse/CMouseNormal.h
+++ b/src/mouse/CMouseNormal.h
@@ -51,6 +51,9 @@ private slots:
void slotAddArea();
void slotCopyPosition();
+private:
+ bool setScreenOption(const QPoint& pt, IGisItem * item);
+
protected:
void stopTracking();
diff --git a/src/mouse/CMouseRangeTrk.cpp b/src/mouse/CMouseRangeTrk.cpp
index 1173f9f..1516180 100644
--- a/src/mouse/CMouseRangeTrk.cpp
+++ b/src/mouse/CMouseRangeTrk.cpp
@@ -34,12 +34,12 @@ CMouseRangeTrk::CMouseRangeTrk(CGisItemTrk &trk, CGisDraw *gis, CCanvas *parent)
cursor = QCursor(QPixmap("://cursors/cursorSelectRange.png"),0,0);
key = trk.getKey();
- // reset user focus if the track has it
- trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
- trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick);
-
// switch to full mode to show deleted (hidden) track points, too
- trk.setDrawMode(CGisItemTrk::eDrawRange);
+ trk.setMode(CGisItemTrk::eModeRange, "CMouseRangeTrk");
+
+ // reset user focus if the track has it
+ trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
+ trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
canvas->reportStatus(key.item, tr("<b>Select Range</b><br/>Select first track point. And then a second one.<br/>"));
/*
@@ -56,47 +56,27 @@ CMouseRangeTrk::~CMouseRangeTrk()
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk)
{
- trk->setDrawMode(CGisItemTrk::eDrawNormal);
+ trk->setMode(CGisItemTrk::eModeNormal, "CMouseRangeTrk");
canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
}
delete scrOptRange;
}
-void CMouseRangeTrk::draw(QPainter& p, bool needsRedraw, const QRect &rect)
+void CMouseRangeTrk::draw(QPainter& p, bool, const QRect &)
{
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk)
{
- switch(state)
+ trk->drawRange(p);
+ if(anchor != NOPOINTF)
{
- case eStateIdle:
- case eStateMoveMap:
- if(anchor != NOPOINTF)
- {
- p.setPen(Qt::darkBlue);
- p.setBrush(QColor(255,255,255,200));
- p.drawEllipse(anchor, 6, 6);
+ p.setPen(Qt::darkBlue);
+ p.setBrush(QColor(255,255,255,200));
+ p.drawEllipse(anchor, 6, 6);
- QPixmap bullet("://icons/8x8/bullet_magenta.png");
- p.drawPixmap(anchor.x() - 3, anchor.y() - 3, bullet);
- }
- break;
-
- case eStateSelectRange:
- case eStateRangeSelected:
- trk->drawRange(p);
- if(anchor != NOPOINTF)
- {
- p.setPen(Qt::darkBlue);
- p.setBrush(QColor(255,255,255,200));
- p.drawEllipse(anchor, 6, 6);
-
- QPixmap bullet("://icons/8x8/bullet_magenta.png");
- p.drawPixmap(anchor.x() - 3, anchor.y() - 3, bullet);
- }
-
- break;
+ QPixmap bullet("://icons/8x8/bullet_magenta.png");
+ p.drawPixmap(anchor.x() - 3, anchor.y() - 3, bullet);
}
}
@@ -124,7 +104,7 @@ void CMouseRangeTrk::mousePressEvent(QMouseEvent * e)
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0 && anchor != NOPOINTF)
{
- anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick);
+ anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
state = eStateSelectRange;
canvas->update();
}
@@ -140,7 +120,7 @@ void CMouseRangeTrk::mousePressEvent(QMouseEvent * e)
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0 && anchor != NOPOINTF)
{
- QPointF pt = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove);
+ QPointF pt = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
scrOptRange = new CScrOptRangeTrk(pt, trk, canvas);
connect(scrOptRange->toolHidePoints, SIGNAL(clicked()), this, SLOT(slotHidePoints()));
connect(scrOptRange->toolShowPoints, SIGNAL(clicked()), this, SLOT(slotShowPoints()));
@@ -159,8 +139,8 @@ void CMouseRangeTrk::mousePressEvent(QMouseEvent * e)
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0)
{
- trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
- trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick);
+ trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
+ trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
}
state = eStateIdle;
canvas->update();
@@ -183,7 +163,7 @@ void CMouseRangeTrk::mouseMoveEvent(QMouseEvent * e)
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0)
{
- anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove);
+ anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
canvas->update();
}
break;
@@ -204,7 +184,7 @@ void CMouseRangeTrk::mouseMoveEvent(QMouseEvent * e)
CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
if(trk != 0)
{
- anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove);
+ anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
canvas->update();
}
panCanvas(point);
diff --git a/src/mouse/CMouseRangeTrk.h b/src/mouse/CMouseRangeTrk.h
index bcb4f08..138ee3b 100644
--- a/src/mouse/CMouseRangeTrk.h
+++ b/src/mouse/CMouseRangeTrk.h
@@ -35,7 +35,7 @@ public:
CMouseRangeTrk(CGisItemTrk& trk, CGisDraw * gis, CCanvas * parent);
virtual ~CMouseRangeTrk();
- void draw(QPainter& p, bool needsRedraw, const QRect &rect);
+ void draw(QPainter& p, bool, const QRect &);
void mousePressEvent(QMouseEvent * e);
void mouseMoveEvent(QMouseEvent * e);
void mouseReleaseEvent(QMouseEvent *e);
diff --git a/src/mouse/CScrOptRangeTrk.cpp b/src/mouse/CScrOptRangeTrk.cpp
index 5651650..0cd7f14 100644
--- a/src/mouse/CScrOptRangeTrk.cpp
+++ b/src/mouse/CScrOptRangeTrk.cpp
@@ -36,6 +36,7 @@ CScrOptRangeTrk::CScrOptRangeTrk(const QPointF &point, CGisItemTrk * trk, QWidge
setOrigin(point.toPoint());
+ qDebug() << point << (point.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
move(point.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
show();
}
diff --git a/src/mouse/IMouseEditLine.cpp b/src/mouse/IMouseEditLine.cpp
index 0fbe114..ff7fdf8 100644
--- a/src/mouse/IMouseEditLine.cpp
+++ b/src/mouse/IMouseEditLine.cpp
@@ -80,7 +80,9 @@ IMouseEditLine::~IMouseEditLine()
void IMouseEditLine::drawLine(const QPolygonF &l, QPainter& p)
{
- p.setPen(QPen(Qt::magenta, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.setPen(QPen(Qt::magenta, 11, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.drawPolyline(l);
+ p.setPen(QPen(Qt::white, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
p.drawPolyline(l);
}
@@ -122,7 +124,9 @@ void IMouseEditLine::drawHighlight1(QPainter& p)
QPolygonF highlight = line.mid(pos,len);
- p.setPen(QPen(Qt::red, 12, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.setPen(QPen(Qt::darkGreen, 11, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.drawPolyline(highlight);
+ p.setPen(QPen(Qt::green, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
p.drawPolyline(highlight);
}
@@ -138,7 +142,9 @@ void IMouseEditLine::drawHighlight2(QPainter& p)
QPolygonF highlight = line.mid(pos,len);
- p.setPen(QPen(Qt::red, 12, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.setPen(QPen(Qt::darkGreen, 11, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+ p.drawPolyline(highlight);
+ p.setPen(QPen(Qt::green, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
p.drawPolyline(highlight);
}
@@ -224,31 +230,31 @@ void IMouseEditLine::draw(QPainter& p, bool needsRedraw, const QRect &rect)
case eStateMoveMap:
case eStateIdle:
case eStatePointSelected:
- drawArrows(line, p);
drawLine(line, p);
+ drawArrows(line, p);
drawBullets(line, p);
drawPointOfFocus(p);
break;
case eStateSelectRange:
- drawArrows(line, p);
drawLine(line, p);
+ drawArrows(line, p);
drawHighlight1(p);
drawBullets(line, p);
drawPointOfFocus(p);
break;
- case eStateRangeSelected:
- drawArrows(line, p);
+ case eStateRangeSelected:
drawLine(line, p);
+ drawArrows(line, p);
drawHighlight2(p);
drawBullets(line, p);
drawPointOfFocus(p);
break;
- case eStateMovePoint:
- drawArrows(line, p);
+ case eStateMovePoint:
drawLine(line, p);
+ drawArrows(line, p);
drawBullets(line, p);
drawPointOfFocus(p);
break;
@@ -264,9 +270,9 @@ void IMouseEditLine::draw(QPainter& p, bool needsRedraw, const QRect &rect)
{
l = line.mid(0, idxStart) + newLine.mid(0, newLine.size() - 2) + subLinePixel + line.mid(idxStop, -1);
}
- drawLeadLine(leadLinePixel, p);
- drawArrows(l, p);
+ drawLeadLine(leadLinePixel, p);
drawLine(l, p);
+ drawArrows(l, p);
drawBullets(l, p);
break;
}
@@ -282,9 +288,9 @@ void IMouseEditLine::draw(QPainter& p, bool needsRedraw, const QRect &rect)
{
l = line.mid(0, idxStart + 1) + subLinePixel + newLine.mid(2, -1) + line.mid(idxStop + 1, -1);
}
- drawLeadLine(leadLinePixel, p);
- drawArrows(l, p);
+ drawLeadLine(leadLinePixel, p);
drawLine(l, p);
+ drawArrows(l, p);
drawBullets(l, p);
break;
}
diff --git a/src/plot/CPlotDistance.cpp b/src/plot/CPlotDistance.cpp
index feafa04..2f953e7 100644
--- a/src/plot/CPlotDistance.cpp
+++ b/src/plot/CPlotDistance.cpp
@@ -99,9 +99,9 @@ void CPlotDistance::updateData()
resetZoom();
}
-void CPlotDistance::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t *ptMove)
+void CPlotDistance::setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove)
{
- if(ptMove == 0)
+ if(ptMouseMove == 0)
{
if(posMouse != NOPOINT)
{
@@ -116,9 +116,10 @@ void CPlotDistance::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CG
needsRedraw = true;
}
- posMouse.rx() = left + data->x().val2pt(ptMove->time.toTime_t());
- posMouse.ry() = top + data->y().val2pt(ptMove->distance);
+ posMouse.rx() = left + data->x().val2pt(ptMouseMove->time.toTime_t());
+ posMouse.ry() = top + data->y().val2pt(ptMouseMove->distance);
}
-
update();
}
+
+
diff --git a/src/plot/CPlotDistance.h b/src/plot/CPlotDistance.h
index b9f360e..784c495 100644
--- a/src/plot/CPlotDistance.h
+++ b/src/plot/CPlotDistance.h
@@ -30,7 +30,7 @@ public:
void setTrack(CGisItemTrk * track);
void updateData();
- void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
+ void setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove);
};
#endif //CPLOTDISTANCE_H
diff --git a/src/plot/CPlotProfile.cpp b/src/plot/CPlotProfile.cpp
index 0396062..80e4bca 100644
--- a/src/plot/CPlotProfile.cpp
+++ b/src/plot/CPlotProfile.cpp
@@ -128,9 +128,9 @@ void CPlotProfile::updateData()
resetZoom();
}
-void CPlotProfile::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t *ptMove)
+void CPlotProfile::setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove)
{
- if(ptMove == 0)
+ if(ptMouseMove == 0)
{
if(posMouse != NOPOINT)
{
@@ -145,42 +145,9 @@ void CPlotProfile::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGi
needsRedraw = true;
}
- posMouse.rx() = left + data->x().val2pt(ptMove->distance);
- posMouse.ry() = top + data->y().val2pt(ptMove->ele);
- }
-
- if(ptClick == 0 || ptMove == 0)
- {
- idxSel1 = idxSel2 = NOIDX;
- }
- else
- {
- if(ptClick->idxTotal < ptMove->idxTotal)
- {
- while(ptClick->flags & CGisItemTrk::trkpt_t::eHidden)
- {
- ptClick++;
- }
- while(ptMove->flags & CGisItemTrk::trkpt_t::eHidden)
- {
- ptMove--;
- }
- idxSel1 = ptClick->idxVisible;
- idxSel2 = ptMove->idxVisible;
- }
- else
- {
- while(ptClick->flags & CGisItemTrk::trkpt_t::eHidden)
- {
- ptClick--;
- }
- while(ptMove->flags & CGisItemTrk::trkpt_t::eHidden)
- {
- ptMove++;
- }
- idxSel1 = ptMove->idxVisible;
- idxSel2 = ptClick->idxVisible;
- }
+ posMouse.rx() = left + data->x().val2pt(ptMouseMove->distance);
+ posMouse.ry() = top + data->y().val2pt(ptMouseMove->ele);
}
update();
}
+
diff --git a/src/plot/CPlotProfile.h b/src/plot/CPlotProfile.h
index 46aba9b..7777c72 100644
--- a/src/plot/CPlotProfile.h
+++ b/src/plot/CPlotProfile.h
@@ -32,7 +32,7 @@ public:
void setTrack(CGisItemTrk * track);
void updateData();
- void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
+ void setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove);
};
#endif //CPLOTPROFILE_H
diff --git a/src/plot/CPlotSpeed.cpp b/src/plot/CPlotSpeed.cpp
index 9395836..0843e37 100644
--- a/src/plot/CPlotSpeed.cpp
+++ b/src/plot/CPlotSpeed.cpp
@@ -98,9 +98,9 @@ void CPlotSpeed::updateData()
resetZoom();
}
-void CPlotSpeed::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t *ptMove)
+void CPlotSpeed::setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove)
{
- if(ptMove == 0)
+ if(ptMouseMove == 0)
{
if(posMouse != NOPOINT)
{
@@ -115,8 +115,9 @@ void CPlotSpeed::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisI
needsRedraw = true;
}
- posMouse.rx() = left + data->x().val2pt(ptMove->distance);
- posMouse.ry() = top + data->y().val2pt(ptMove->speed);
+ posMouse.rx() = left + data->x().val2pt(ptMouseMove->distance);
+ posMouse.ry() = top + data->y().val2pt(ptMouseMove->speed);
}
update();
}
+
diff --git a/src/plot/CPlotSpeed.h b/src/plot/CPlotSpeed.h
index 58bdc27..1ccae01 100644
--- a/src/plot/CPlotSpeed.h
+++ b/src/plot/CPlotSpeed.h
@@ -30,7 +30,7 @@ public:
void setTrack(CGisItemTrk * track);
void updateData();
- void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
+ void setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove);
};
#endif //CPLOTSPEED_H
diff --git a/src/plot/IPlot.cpp b/src/plot/IPlot.cpp
index 74263bf..931140a 100644
--- a/src/plot/IPlot.cpp
+++ b/src/plot/IPlot.cpp
@@ -22,7 +22,9 @@
#include "CMainWindow.h"
#include "canvas/CCanvas.h"
#include "gis/CGisWidget.h"
+#include "helpers/CFadingIcon.h"
#include "helpers/CSettings.h"
+#include "mouse/CScrOptRangeTrk.h"
#include <QtWidgets>
@@ -31,7 +33,7 @@ QPen IPlot::pens[] =
QPen(Qt::darkBlue,3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
, QPen(QColor("#C00000"),3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
, QPen(Qt::yellow,3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
- , QPen(Qt::darkYellow,3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
+ , QPen(Qt::green,3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
};
QPen IPlot::pensThin[] =
@@ -50,6 +52,7 @@ QColor IPlot::colors[] =
, QColor(Qt::darkGreen)
};
+int IPlot::cnt = 0;
IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget *parent)
: QWidget(parent)
@@ -73,8 +76,12 @@ IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget
, scaleWidthY1(0)
, idxSel1(NOIDX)
, idxSel2(NOIDX)
+ , mouseClickState(eMouseClickIdle)
{
+ cnt++;
+ setObjectName(QString("IPlot%1").arg(cnt));
+
setContextMenuPolicy(Qt::CustomContextMenu);
setMouseTracking(true);
@@ -98,16 +105,29 @@ IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget
}
menu = new QMenu(this);
- actionPrint = menu->addAction(QIcon("://icons/32x32/Save.png"), tr("Save..."), this, SLOT(slotSave()));
+ actionStopRange = menu->addAction(QIcon("://icons/32x32/SelectRange.png"), tr("Stop Range"), this, SLOT(slotStopRange()));
+ actionPrint = menu->addAction(QIcon("://icons/32x32/Save.png"), tr("Save..."), this, SLOT(slotSave()));
connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint)));
}
IPlot::~IPlot()
{
+ cnt--;
+
if(trk)
{
trk->unregisterPlot(this);
+ /*
+ Always set the mode to normal. If the object is not owner
+ of the current mode, the request will be ignored.
+ */
+ trk->setMode(CGisItemTrk::eModeNormal, objectName());
+
+ /*
+ As having the user focus will always display an on screen plot, closing
+ the plot has to result into the track loosing the focus.
+ */
if(mode == eModeWindow)
{
trk->looseUserFocus();
@@ -229,11 +249,6 @@ void IPlot::leaveEvent(QEvent * e)
needsRedraw = true;
posMouse = NOPOINT;
- if(trk)
- {
- trk->setMouseFocusByDistance(NOFLOAT, CGisItemTrk::eFocusMouseMove, this);
- }
-
QApplication::restoreOverrideCursor();
update();
}
@@ -261,6 +276,11 @@ void IPlot::draw(QPainter& p)
void IPlot::mouseMoveEvent(QMouseEvent * e)
{
+ if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
+ {
+ return;
+ }
+
posMouse = NOPOINT;
if(rectGraphArea.contains(e->pos()))
{
@@ -272,14 +292,14 @@ void IPlot::mouseMoveEvent(QMouseEvent * e)
{
if(trk)
{
- trk->setMouseFocusByDistance(x, CGisItemTrk::eFocusMouseMove, this);
+ trk->setMouseFocusByDistance(x, CGisItemTrk::eFocusMouseMove, objectName());
}
}
else if(data->axisType == CPlotData::eAxisTime)
{
if(trk)
{
- trk->setMouseFocusByTime(x, CGisItemTrk::eFocusMouseMove, this);
+ trk->setMouseFocusByTime(x, CGisItemTrk::eFocusMouseMove, objectName());
}
}
@@ -296,6 +316,13 @@ void IPlot::mouseMoveEvent(QMouseEvent * e)
void IPlot::mousePressEvent(QMouseEvent * e)
{
+ if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
+ {
+ return;
+ }
+
+ bool wasProcessed = true;
+
posMouse = NOPOINT;
if((e->button() == Qt::LeftButton) && rectGraphArea.contains(e->pos()))
{
@@ -309,26 +336,112 @@ void IPlot::mousePressEvent(QMouseEvent * e)
{
// set point of focus at track object
qreal x = data->x().pt2val(posMouse.x() - left);
- if(data->axisType == CPlotData::eAxisLinear)
+
+ switch(mouseClickState)
+ {
+ case eMouseClickIdle:
{
- if(trk)
+ // In idle state a mouse click will select the first point of a range
+ if(trk->setMode(CGisItemTrk::eModeRange, objectName()))
{
- trk->setMouseFocusByDistance(x, CGisItemTrk::eFocusMouseClick, this);
+ if(data->axisType == CPlotData::eAxisLinear)
+ {
+ trk->setMouseFocusByDistance(x, CGisItemTrk::eFocusMouseClick, objectName());
+ }
+ else if(data->axisType == CPlotData::eAxisTime)
+ {
+ trk->setMouseFocusByTime(x, CGisItemTrk::eFocusMouseClick, objectName());
+ }
+
+ mouseClickState = eMouseClick1st;
}
+ else
+ {
+ /*
+ If the object is not the owner of the range selection, no action has to be taken.
+ However the user has to be informed, that he clicked on the wrong widget.
+ */
+ new CFadingIcon(posMouse, "://icons/48x48/NoGo.png", this);
+ wasProcessed = false;
+ }
+ break;
}
- else if(data->axisType == CPlotData::eAxisTime)
+
+ case eMouseClick1st:
{
- if(trk)
+ // In 1st click state a mouse click will select the second point of a range and display options
+ if(data->axisType == CPlotData::eAxisLinear)
+ {
+ trk->setMouseFocusByDistance(x, CGisItemTrk::eFocusMouseClick, objectName());
+ }
+ else if(data->axisType == CPlotData::eAxisTime)
{
- trk->setMouseFocusByTime(x, CGisItemTrk::eFocusMouseClick, this);
+ trk->setMouseFocusByTime(x, CGisItemTrk::eFocusMouseClick, objectName());
}
+
+ /*
+ As the screen option is created on the fly it has to be connected to all slots,too.
+ Later, when destroyed the slots will be disconnected automatically.
+ */
+ delete scrOptRange;
+ scrOptRange = new CScrOptRangeTrk(e->pos(), trk, this);
+ connect(scrOptRange->toolHidePoints, SIGNAL(clicked()), this, SLOT(slotHidePoints()));
+ connect(scrOptRange->toolShowPoints, SIGNAL(clicked()), this, SLOT(slotShowPoints()));
+ connect(scrOptRange->toolCopy, SIGNAL(clicked()), this, SLOT(slotCopy()));
+
+ /* Adjust posiion of screen option widget if the widget is out of the visible area*/
+ QRect r1 = scrOptRange->geometry();
+ QRect r2 = geometry();
+ r1.moveTopLeft(mapToParent(r1.topLeft()));
+ if(!r2.contains(r1))
+ {
+ // test if screen option is out of area on the right side
+ if(!r2.contains(r1.topRight()))
+ {
+ QPoint pt = QPoint(r2.width(), r2.height()) - QPoint(r1.width(), r1.height());
+ scrOptRange->move(pt);
+ }
+ // test if screen option is out of area on the left side
+ else if(!r2.contains(r1.topLeft()))
+ {
+ QPoint pt = QPoint(0, r2.height()) - QPoint(0, r1.height());
+ scrOptRange->move(pt);
+ }
+ // test if screen option is out of area on the bottom
+ else if(!r2.contains(r1.bottomLeft()))
+ {
+ QPoint pt = QPoint(r1.left(), r2.height()) - QPoint(r2.left(), r1.height());
+ scrOptRange->move(pt);
+ }
+ }
+
+ mouseClickState = eMouseClick2nd;
+ break;
}
- // update canvas if visible
- CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
- if(canvas)
+ case eMouseClick2nd:
+ {
+ // In second click state a mouse click will reset the range selection
+ delete scrOptRange;
+ trk->setMode(CGisItemTrk::eModeNormal, objectName());
+ idxSel1 = idxSel2 = NOIDX;
+ mouseClickState = eMouseClickIdle;
+ break;
+ }
+ }
+
+
+ // Update canvas only if the object ist the owener of the range selection
+ if(wasProcessed)
{
- canvas->update();
+ emit sigMouseClickState(mouseClickState);
+
+ // update canvas if visible
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->update();
+ }
}
}
e->accept();
@@ -483,17 +596,6 @@ void IPlot::draw()
PAINT_ROUNDED_RECT(p,r);
}
- else if(mode == eModeWindow)
- {
- if(underMouse() || posMouse != NOPOINT || solid)
- {
-// setWindowOpacity(1.0);
- }
- else
- {
-// setWindowOpacity(0.6);
- }
- }
if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
{
@@ -896,61 +998,69 @@ void IPlot::drawDecoration( QPainter &p )
}
}
-// if((idxSel1 != NOIDX) && (idxSel2 != NOIDX) && !data->badData)
-// {
-// int penIdx = 3;
-// int ptx, pty, oldPtx;
+ if((idxSel1 != NOIDX) && (idxSel2 != NOIDX) && !data->badData)
+ {
+ int penIdx = 3;
+ int ptx, pty, oldPtx, ptx1;
+ QPolygonF background;
+ QPolygonF foreground;
-// QPolygonF background;
-// QPolygonF foreground;
+ CPlotAxis& xaxis = data->x();
+ CPlotAxis& yaxis = data->y();
-// CPlotAxis& xaxis = data->x();
-// CPlotAxis& yaxis = data->y();
+ const QPolygonF& polyline = data->lines.first().points.mid(idxSel1, idxSel2 - idxSel1 + 1);
+ QPolygonF::const_iterator point = polyline.begin();
-// const QPolygonF& polyline = data->lines.first().points.mid(idxSel1, idxSel2 - idxSel1);
-// QPolygonF::const_iterator point = polyline.begin();
+ ptx = left + xaxis.val2pt( point->x() );
+ pty = bottom - yaxis.val2pt( point->y() );
+ ptx1 = oldPtx = ptx;
-// ptx = left + xaxis.val2pt( point->x() );
-// pty = bottom - yaxis.val2pt( point->y() );
-// oldPtx = ptx;
+ background << QPointF(ptx,bottom);
+ background << QPointF(ptx,pty);
-// background << QPointF(ptx,bottom);
-// background << QPointF(ptx,pty);
+ foreground << QPointF(ptx,pty);
-// foreground << QPointF(ptx,pty);
+ while(point != polyline.end())
+ {
+ ptx = left + xaxis.val2pt( point->x() );
+ pty = bottom - yaxis.val2pt( point->y() );
-// while(point != polyline.end())
-// {
-// ptx = left + xaxis.val2pt( point->x() );
-// pty = bottom - yaxis.val2pt( point->y() );
+ if(oldPtx == ptx)
+ {
+ ++point;
+ continue;
+ }
+ oldPtx = ptx;
-// if(oldPtx == ptx)
-// {
-// ++point;
-// continue;
-// }
-// oldPtx = ptx;
+ if(ptx >= left && ptx <= right)
+ {
+ background << QPointF(ptx,pty);
+ foreground << QPointF(ptx,pty);
+ }
+ ++point;
+ }
-// if(ptx >= left && ptx <= right)
-// {
-// background << QPointF(ptx,pty);
-// foreground << QPointF(ptx,pty);
-// }
-// ++point;
-// }
+ background << QPointF(ptx,pty);
+ background << QPointF(ptx,bottom);
-// background << QPointF(ptx,pty);
-// background << QPointF(ptx,bottom);
+ p.setPen(Qt::NoPen);
+ p.setBrush(colors[penIdx]);
+ p.drawPolygon(background);
-// p.setPen(Qt::NoPen);
-// p.setBrush(colors[penIdx]);
-// p.drawPolygon(background);
+ p.setPen(thinLine ? pensThin[penIdx] : pens[penIdx]);
+ p.setBrush(Qt::NoBrush);
+ p.drawPolyline(foreground);
+
+ p.setPen(QPen(Qt::darkBlue, 2));
+ p.drawLine(ptx1, top, ptx1, bottom);
+ p.drawLine(ptx, top, ptx, bottom);
+ }
-// p.setPen(thinLine ? pensThin[penIdx++] : pens[penIdx++]);
-// p.setBrush(Qt::NoBrush);
-// p.drawPolyline(foreground);
-// }
+ if(!scrOptRange.isNull())
+ {
+ scrOptRange->draw(p);
+ }
}
void IPlot::drawTags(QPainter& p)
@@ -1005,6 +1115,9 @@ void IPlot::slotContextMenu(const QPoint & point)
{
QPoint p = mapToGlobal(point);
+ actionStopRange->setEnabled((mouseClickState != eMouseClickIdle) && !(idxSel1 == NOIDX || idxSel2 == NOIDX));
+ actionPrint->setEnabled(mouseClickState != eMouseClick2nd);
+
menu->exec(p);
}
@@ -1037,3 +1150,104 @@ void IPlot::slotSave()
path = fi.absolutePath();
cfg.setValue("Paths/lastGraphPath", path);
}
+
+
+void IPlot::slotHidePoints()
+{
+ trk->hideSelectedPoints();
+ scrOptRange->deleteLater();
+
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+ }
+
+ trk->setMode(CGisItemTrk::eModeNormal, objectName());
+ mouseClickState = eMouseClickIdle;
+}
+
+void IPlot::slotShowPoints()
+{
+ trk->showSelectedPoints();
+ scrOptRange->deleteLater();
+
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+ }
+
+ trk->setMode(CGisItemTrk::eModeNormal, objectName());
+ mouseClickState = eMouseClickIdle;
+}
+
+void IPlot::slotCopy()
+{
+ trk->copySelectedPoints();
+ scrOptRange->deleteLater();
+
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+ }
+
+ trk->setMode(CGisItemTrk::eModeNormal, objectName());
+ mouseClickState = eMouseClickIdle;
+}
+
+void IPlot::slotStopRange()
+{
+ delete scrOptRange;
+ trk->setMode(CGisItemTrk::eModeNormal, objectName());
+ idxSel1 = idxSel2 = NOIDX;
+ mouseClickState = eMouseClickIdle;
+
+ emit sigMouseClickState(mouseClickState);
+
+ // update canvas if visible
+ CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+ if(canvas)
+ {
+ canvas->update();
+ }
+}
+
+void IPlot::setMouseRangeFocus(const CGisItemTrk::trkpt_t * ptRange1, const CGisItemTrk::trkpt_t *ptRange2)
+{
+ if(ptRange1 == 0 || ptRange2 == 0)
+ {
+ idxSel1 = idxSel2 = NOIDX;
+ }
+ else
+ {
+ if(ptRange1->idxTotal < ptRange2->idxTotal)
+ {
+ while(ptRange1->flags & CGisItemTrk::trkpt_t::eHidden)
+ {
+ ptRange1++;
+ }
+ while(ptRange2->flags & CGisItemTrk::trkpt_t::eHidden)
+ {
+ ptRange2--;
+ }
+ idxSel1 = ptRange1->idxVisible;
+ idxSel2 = ptRange2->idxVisible;
+ }
+ else
+ {
+ while(ptRange1->flags & CGisItemTrk::trkpt_t::eHidden)
+ {
+ ptRange1--;
+ }
+ while(ptRange2->flags & CGisItemTrk::trkpt_t::eHidden)
+ {
+ ptRange2++;
+ }
+ idxSel1 = ptRange2->idxVisible;
+ idxSel2 = ptRange1->idxVisible;
+ }
+ }
+ update();
+}
diff --git a/src/plot/IPlot.h b/src/plot/IPlot.h
index 008af78..ad5cc70 100644
--- a/src/plot/IPlot.h
+++ b/src/plot/IPlot.h
@@ -24,18 +24,26 @@
#include <QWidget>
class QMenu;
+class CScrOptRangeTrk;
class IPlot : public QWidget
{
Q_OBJECT
public:
enum mode_e {eModeNormal, eModeIcon, eModeWindow};
+ enum mouse_click_state_e
+ {
+ eMouseClickIdle
+ , eMouseClick1st
+ , eMouseClick2nd
+ };
IPlot(CGisItemTrk * trk, CPlotData::axistype_e type, mode_e mode, QWidget * parent);
virtual ~IPlot();
virtual void updateData() = 0;
- virtual void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove) = 0;
+ virtual void setMouseFocus(const CGisItemTrk::trkpt_t * ptMouseMove) = 0;
+ virtual void setMouseRangeFocus(const CGisItemTrk::trkpt_t * ptRange1, const CGisItemTrk::trkpt_t * ptRange2);
void save(QImage& image);
void setSolid(bool yes)
@@ -43,9 +51,17 @@ public:
solid = yes;
}
+signals:
+ void sigMouseClickState(int);
+
private slots:
void slotContextMenu(const QPoint & point);
void slotSave();
+ void slotHidePoints();
+ void slotShowPoints();
+ void slotCopy();
+ void slotStopRange();
+
protected:
void setYLabel(const QString& str);
@@ -86,6 +102,8 @@ protected:
void drawDecoration( QPainter &p );
void drawTags(QPainter& p);
+ static int cnt;
+
// different draw modes
mode_e mode;
// buffer needs update
@@ -137,9 +155,15 @@ protected:
QMenu * menu;
QAction * actionPrint;
+ QAction * actionStopRange;
qint32 idxSel1;
qint32 idxSel2;
+
+
+ mouse_click_state_e mouseClickState;
+
+ QPointer<CScrOptRangeTrk> scrOptRange;
};
#endif //IPLOT_H
diff --git a/src/resources.qrc b/src/resources.qrc
index 065fa75..d1ec450 100644
--- a/src/resources.qrc
+++ b/src/resources.qrc
@@ -139,6 +139,7 @@
<file>icons/32x32/LoadView.png</file>
<file>icons/32x32/Save.png</file>
<file>icons/32x32/ProfileToWindow.png</file>
+ <file>icons/32x32/NoGo.png</file>
<file>icons/48x48/2DFix.png</file>
<file>icons/48x48/3DFix.png</file>
@@ -260,6 +261,7 @@
<file>icons/48x48/LoadView.png</file>
<file>icons/48x48/Save.png</file>
<file>icons/48x48/ProfileToWindow.png</file>
+ <file>icons/48x48/NoGo.png</file>
<file>icons/cache/32x32/bluepin.png</file>
<file>icons/cache/32x32/cito.png</file>
@@ -331,5 +333,11 @@
<file>pics/about.png</file>
<file>pics/noMap256x256.png</file>
+ <file>map/WorldTopo.wmts</file>
+ <file>map/WorldSat.wmts</file>
+ <file>map/OpenStreetMap.tms</file>
+ <file>map/OSM_Topo.tms</file>
+ <file>map/OpenCycleMap.tms</file>
+
</qresource>
</RCC>
diff --git a/src/units/CUnitMetric.cpp b/src/units/CUnitMetric.cpp
index 73dcd6a..7e912c5 100644
--- a/src/units/CUnitMetric.cpp
+++ b/src/units/CUnitMetric.cpp
@@ -86,15 +86,21 @@ void CUnitMetric::meter2speed(qreal meter, QString& val, QString& unit)
val = "-";
unit = "";
}
+ else if (meter < 0.27)
+ {
+ val.sprintf("%1.0f",meter * speedfactor * 1000);
+ unit = "m/h";
+ }
else if (meter < 10.0)
{
val.sprintf("%1.1f",meter * speedfactor);
+ unit = speedunit;
}
else
{
val.sprintf("%1.0f",meter * speedfactor);
+ unit = speedunit;
}
- unit = speedunit;
}
void CUnitMetric::meter2area(qreal meter, QString& val, QString& unit)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qmapshack.git
More information about the Pkg-grass-devel
mailing list