[qmapshack] 01/03: Imported Upstream version 1.1.0

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Sun Mar 29 16:13:08 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 a4597aaac8c45dc17832e7a6ac0921f6f3fb0a8c
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sun Mar 29 17:50:31 2015 +0200

    Imported Upstream version 1.1.0
---
 CMakeLists.txt                                  |   4 +-
 CMakeLists.txt.user                             |   4 +-
 changelog.txt                                   |   9 +
 src/CMainWindow.cpp                             |  51 +-
 src/CMainWindow.h                               |   2 +
 src/CMakeLists.txt                              |   3 +
 src/GeoMath.cpp                                 |  10 +-
 src/GeoMath.h                                   |   6 +-
 src/IAbout.ui                                   |  76 ++-
 src/IMainWindow.ui                              |  18 +-
 src/canvas/CCanvas.cpp                          | 123 ++++-
 src/canvas/CCanvas.h                            |   5 +
 src/device/CDeviceTwoNav.cpp                    |  12 +
 src/device/IDevice.cpp                          |   4 +-
 src/device/IDevice.h                            |   2 +-
 src/gis/CGisListWks.cpp                         |  33 +-
 src/gis/CGisWidget.cpp                          |   2 +-
 src/gis/CSelDevices.cpp                         |  76 +++
 src/{plot/CPlotDistance.h => gis/CSelDevices.h} |  22 +-
 src/gis/IGisItem.cpp                            |  27 +-
 src/gis/ISelDevices.ui                          |  67 +++
 src/gis/db/CDBProject.cpp                       |   3 +
 src/gis/gpx/CGpxProject.cpp                     |  16 +-
 src/gis/gpx/serialization.cpp                   |   4 +-
 src/gis/ovl/CGisItemOvlArea.cpp                 |   6 +-
 src/gis/prj/CDetailsPrj.cpp                     | 304 +++++++++--
 src/gis/prj/CDetailsPrj.h                       |  16 +-
 src/gis/prj/IDetailsPrj.ui                      |  38 +-
 src/gis/prj/IGisProject.cpp                     |  21 +
 src/gis/prj/IGisProject.h                       |  30 +-
 src/gis/qms/CQmsProject.cpp                     |   1 +
 src/gis/qms/serialization.cpp                   |  17 +-
 src/gis/rte/CGisItemRte.cpp                     |   2 +-
 src/gis/tnv/CTwoNavProject.cpp                  |   5 +-
 src/gis/tnv/CTwoNavProject.h                    |   1 +
 src/gis/tnv/serialization.cpp                   | 106 +++-
 src/gis/trk/CDetailsTrk.cpp                     |  18 +-
 src/gis/trk/CDetailsTrk.h                       |   2 +-
 src/gis/trk/CGisItemTrk.cpp                     | 263 +++++++---
 src/gis/trk/CGisItemTrk.h                       |  47 +-
 src/gis/trk/CScrOptTrk.cpp                      |   4 +
 src/gis/wpt/CDetailsGeoCache.cpp                |   2 +-
 src/gis/wpt/CGisItemWpt.cpp                     |   8 +-
 src/grid/CGrid.cpp                              |   2 +-
 src/helpers/CPhotoAlbum.cpp                     |   9 +-
 src/helpers/CWptIconDialog.cpp                  |   1 +
 src/icons/32x32/FolderDEM.png                   | Bin 1293 -> 829 bytes
 src/icons/32x32/FolderMap.png                   | Bin 1664 -> 1550 bytes
 src/icons/32x32/ProfileToWindow.png             | Bin 0 -> 1018 bytes
 src/icons/48x48/FolderDEM.png                   | Bin 1743 -> 1135 bytes
 src/icons/48x48/FolderMap.png                   | Bin 2664 -> 2512 bytes
 src/icons/48x48/ProfileToWindow.png             | Bin 0 -> 1649 bytes
 src/icons/FolderDEM.svg                         |  20 +-
 src/icons/FolderMap.svg                         |  53 +-
 src/icons/ProfileToWindow.svg                   | 118 +++++
 src/locale/qmapshack_cs.ts                      | 581 ++++++++++++---------
 src/locale/qmapshack_de.ts                      | 659 ++++++++++++++----------
 src/locale/qmapshack_es.ts                      | 581 ++++++++++++---------
 src/locale/qmapshack_fr.ts                      | 579 ++++++++++++---------
 src/map/CMapIMG.cpp                             |  26 +-
 src/map/CMapJNX.cpp                             |   2 +-
 src/map/CMapTMS.cpp                             |  10 +-
 src/map/garmin/CGarminTyp.cpp                   |   3 +-
 src/mouse/CMouseEditArea.cpp                    |   2 +-
 src/mouse/CMouseEditTrk.cpp                     |   7 +-
 src/mouse/CMouseRangeTrk.cpp                    |   6 +-
 src/mouse/IMouseEditLine.cpp                    |  50 +-
 src/plot/CPlotAxis.h                            |   4 +-
 src/plot/CPlotData.h                            |   2 -
 src/plot/CPlotDistance.cpp                      |   9 +-
 src/plot/CPlotDistance.h                        |   2 +-
 src/plot/CPlotProfile.cpp                       |  75 ++-
 src/plot/CPlotProfile.h                         |   2 +-
 src/plot/CPlotSpeed.cpp                         |   8 +-
 src/plot/CPlotSpeed.h                           |   2 +-
 src/plot/CPlotTrack.cpp                         |   2 +-
 src/plot/CPlotTrack.h                           |   2 +-
 src/plot/IPlot.cpp                              | 172 ++++++-
 src/plot/IPlot.h                                |   8 +-
 src/qlgt/converter.cpp                          |   8 +-
 src/resources.qrc                               |   2 +
 src/units/IUnit.cpp                             |   6 +-
 src/units/IUnit.h                               |   1 +
 83 files changed, 3078 insertions(+), 1406 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5255043..2f8c2ea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,8 +20,8 @@ endif(WIN32)
 set(APPLICATION_NAME qmapshack)
 
 set(APPLICATION_VERSION_MAJOR "1")
-set(APPLICATION_VERSION_MINOR "0")
-set(APPLICATION_VERSION_PATCH "1")
+set(APPLICATION_VERSION_MINOR "1")
+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 b69a358..2e986f2 100644
--- a/CMakeLists.txt.user
+++ b/CMakeLists.txt.user
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 3.3.1, 2015-03-18T20:57:17. -->
+<!-- Written by QtCreator 3.3.1, 2015-03-29T14:01:35. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -157,7 +157,7 @@
      <value type="int">14</value>
     </valuelist>
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmapshack</value>
-    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments">-d --help</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="int" key="PE.EnvironmentAspect.Base">2</value>
diff --git a/changelog.txt b/changelog.txt
index a0a7c3c..f750fa1 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,12 @@
+V 1.1.0
+* Garmin Mpas: fix line breaks of tooltips
+* Project summary: Add roadbook mode
+* TwoNav: export tracks and waypoints as roadbook
+* Grid: Fixed swaped numbers for northing and easting
+* Tracks: Toggle between small OSD profile and extended profile
+* Tracks: Several fixes for range selection
+* Tracks: Show waypoints along track in profile plot
+
 V 1.0.1
 * [Issue #11]Exclude items not visible from highlighting
 * Fix track edit hangup for tracks with corrupted timestamps
diff --git a/src/CMainWindow.cpp b/src/CMainWindow.cpp
index fefb37b..7367953 100644
--- a/src/CMainWindow.cpp
+++ b/src/CMainWindow.cpp
@@ -92,6 +92,7 @@ CMainWindow::CMainWindow()
     connect(actionPOIText, SIGNAL(changed()), this, SLOT(slotUpdateCurrentWidget()));
     connect(actionMapToolTip, SIGNAL(changed()), this, SLOT(slotUpdateCurrentWidget()));
     connect(actionNightDay, SIGNAL(changed()), this, SLOT(slotUpdateCurrentWidget()));
+    connect(actionProfileIsWindow, SIGNAL(toggled(bool)), this, SLOT(slotSetProfileMode(bool)));
     connect(actionSetupMapFont, SIGNAL(triggered()), this, SLOT(slotSetupMapFont()));
     connect(actionSetupGrid, SIGNAL(triggered()), this, SLOT(slotSetupGrid()));
     connect(actionSetupMapPaths, SIGNAL(triggered()), this, SLOT(slotSetupMapPath()));
@@ -144,6 +145,7 @@ CMainWindow::CMainWindow()
     actionMapToolTip->setChecked(cfg.value("MapToolTip", true).toBool());
     actionNightDay->setChecked(cfg.value("isNight", false).toBool());
     actionFlipMouseWheel->setChecked(cfg.value("flipMouseWheel", false).toBool());
+    actionProfileIsWindow->setChecked(cfg.value("profileIsWindow", false).toBool());
     mapFont = cfg.value("mapFont", font()).value<QFont>();
     tabWidget->setCurrentIndex(cfg.value("visibleCanvas",0).toInt());
     cfg.endGroup(); // Canvas
@@ -218,6 +220,7 @@ CMainWindow::~CMainWindow()
     cfg.setValue("MapToolTip", actionMapToolTip->isChecked());
     cfg.setValue("isNight", actionNightDay->isChecked());
     cfg.setValue("flipMouseWheel", actionFlipMouseWheel->isChecked());
+    cfg.setValue("profileIsWindow",actionProfileIsWindow->isChecked());
     cfg.setValue("mapFont", mapFont);
     CMapDraw::saveMapPath(cfg);
     CDemDraw::saveDemPath(cfg);
@@ -269,6 +272,11 @@ bool CMainWindow::flipMouseWheel()
     return actionFlipMouseWheel->isChecked();
 }
 
+bool CMainWindow::profileIsWindow()
+{
+    return actionProfileIsWindow->isChecked();
+}
+
 void CMainWindow::addMapList(CMapList * list, const QString &name)
 {
     tabMaps->addTab(list,name);
@@ -281,7 +289,7 @@ void CMainWindow::addDemList(CDemList * list, const QString &name)
 
 void CMainWindow::addWidgetToTab(QWidget * w)
 {
-    if(tabWidget->indexOf(w) == -1)
+    if(tabWidget->indexOf(w) == NOIDX)
     {
         tabWidget->addTab(w, w->objectName());
     }
@@ -394,10 +402,22 @@ void CMainWindow::slotCurrentTabCanvas(int i)
             break;
         }
     }
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
+
+    for(int n = 0; n < tabWidget->count(); n++)
     {
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(n));
+        if(canvas)
+        {
+            if(n == i)
+            {
+                canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+                canvas->showProfile(true);
+            }
+            else
+            {
+                canvas->showProfile(false);
+            }
+        }
     }
 }
 
@@ -420,11 +440,6 @@ void CMainWindow::slotCurrentTabMaps(int i)
             break;
         }
     }
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
 }
 
 void CMainWindow::slotCurrentTabDem(int i)
@@ -446,11 +461,6 @@ void CMainWindow::slotCurrentTabDem(int i)
             break;
         }
     }
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
 }
 
 void CMainWindow::slotMousePosition(const QPointF& pos, qreal ele)
@@ -680,6 +690,19 @@ void CMainWindow::slotLoadView()
     cfg.setValue("Paths/lastViewPath", path);
 }
 
+void CMainWindow::slotSetProfileMode(bool on)
+{
+    for(int i = 0; i < tabWidget->count(); i++)
+    {
+        CCanvas * view = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+        if(view == 0)
+        {
+            continue;
+        }
+
+        view->showProfileAsWindow(on);
+    }
+}
 
 #ifdef WIN32
 
diff --git a/src/CMainWindow.h b/src/CMainWindow.h
index 21821fb..3c611ee 100644
--- a/src/CMainWindow.h
+++ b/src/CMainWindow.h
@@ -48,6 +48,7 @@ public:
     bool isPOIText();
     bool isMapToolTip();
     bool flipMouseWheel();
+    bool profileIsWindow();
     const QFont& getMapFont()
     {
         return mapFont;
@@ -95,6 +96,7 @@ private slots:
     void slotBuildVrt();
     void slotStoreView();
     void slotLoadView();
+    void slotSetProfileMode(bool on);
 
 private:
     friend int main(int argc, char ** argv);
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8fa0edf..385a273 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -103,6 +103,7 @@ set( SRCS
     gis/CGisWidget.cpp
     gis/CGisListDB.cpp
     gis/CGisListWks.cpp
+    gis/CSelDevices.cpp
     gis/prj/IGisProject.cpp
     gis/prj/CDetailsPrj.cpp
     gis/gpx/CGpxProject.cpp
@@ -282,6 +283,7 @@ set( HDRS
     gis/CGisWidget.h
     gis/CGisListDB.h
     gis/CGisListWks.h
+    gis/CSelDevices.h
     gis/qms/CQmsProject.h
     gis/tnv/CTwoNavProject.h
     gis/db/IDB.cpp
@@ -390,6 +392,7 @@ set( UIS
     mouse/IScrOptRange.ui
     mouse/IScrOptRangeTrk.ui
     gis/IGisWidget.ui
+    gis/ISelDevices.ui
     gis/prj/IDetailsPrj.ui
     gis/db/ISetupDatabase.ui
     gis/db/ISetupWorkspace.ui
diff --git a/src/GeoMath.cpp b/src/GeoMath.cpp
index b9feb0a..1180720 100644
--- a/src/GeoMath.cpp
+++ b/src/GeoMath.cpp
@@ -368,7 +368,7 @@ void GPS_Math_DouglasPeucker(QVector<pointDP> &line, qreal d)
 
     while(!stack.isEmpty())
     {
-        qint32 idx = -1;
+        qint32 idx = NOIDX;
         segment seg = stack.pop();
 
         pointDP& x1 = line[seg.idx1];
@@ -453,7 +453,7 @@ void GPS_Math_SubPolyline(const QPointF& pt1, const QPointF& pt2, qint32 thresho
     qreal distance;             // the distance to the polyline
     qreal shortest1 = threshold;
     qreal shortest2 = threshold;
-    qint32 idx11 = -1, idx21 = -1, idx12 = -1;
+    qint32 idx11 = NOIDX, idx21 = NOIDX, idx12 = NOIDX;
 
     QPointF pt11;
     QPointF pt21;
@@ -513,7 +513,7 @@ void GPS_Math_SubPolyline(const QPointF& pt1, const QPointF& pt2, qint32 thresho
     }
 
     // if 1st point can't be found test for distance to both ends
-    if(idx11 == -1)
+    if(idx11 == NOIDX)
     {
         QPointF px = pixel.first();
         distance = qSqrt((qreal)((px.x() - pt1.x())*(px.x() - pt1.x()) + (px.y() - pt1.y())*(px.y() - pt1.y())));
@@ -537,7 +537,7 @@ void GPS_Math_SubPolyline(const QPointF& pt1, const QPointF& pt2, qint32 thresho
     }
 
     // if 2nd point can't be found test for distance to both ends
-    if(idx21 == -1)
+    if(idx21 == NOIDX)
     {
         QPointF px = pixel.first();
         distance = qSqrt((qreal)((px.x() - pt2.x())*(px.x() - pt2.x()) + (px.y() - pt2.y())*(px.y() - pt2.y())));
@@ -576,7 +576,7 @@ void segment_t::apply(const QPolygonF& coords, const QPolygonF& pixel, QPolygonF
     context->convertPx2Rad(pt1);
     context->convertPx2Rad(pt2);
 
-    if(idx11 != -1 && idx21 != -1)
+    if(idx11 != NOIDX && idx21 != NOIDX)
     {
         if(idx11 == idx21)
         {
diff --git a/src/GeoMath.h b/src/GeoMath.h
index 6436a5f..d5e1b18 100644
--- a/src/GeoMath.h
+++ b/src/GeoMath.h
@@ -25,6 +25,8 @@
 
 #include <stdint.h>
 
+#include "units/IUnit.h"
+
 class QPolygonF;
 class IDrawContext;
 
@@ -40,7 +42,7 @@ struct point3D
 
 struct pointDP : public point3D
 {
-    pointDP() : used(true), idx(-1)
+    pointDP() : used(true), idx(NOIDX)
     {
     }
     bool used;
@@ -49,7 +51,7 @@ struct pointDP : public point3D
 
 struct segment_t
 {
-    segment_t() : idx11(-1), idx12(-1), idx21(-1)
+    segment_t() : idx11(NOIDX), idx12(NOIDX), idx21(NOIDX)
     {
     }
 
diff --git a/src/IAbout.ui b/src/IAbout.ui
index 9333477..c85180c 100644
--- a/src/IAbout.ui
+++ b/src/IAbout.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>513</width>
-    <height>258</height>
+    <height>334</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -126,6 +126,80 @@
       </layout>
      </item>
      <item>
+      <widget class="Line" name="line_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <layout class="QGridLayout" name="gridLayout">
+       <item row="3" column="1">
+        <widget class="QLabel" name="label_15">
+         <property name="text">
+          <string>Rainer Unseld </string>
+         </property>
+        </widget>
+       </item>
+       <item row="3" column="0">
+        <widget class="QLabel" name="label_14">
+         <property name="text">
+          <string>French</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="0">
+        <widget class="QLabel" name="label_12">
+         <property name="text">
+          <string>Czech</string>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="1">
+        <widget class="QLabel" name="label_13">
+         <property name="text">
+          <string>Pavel Fric</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="label_9">
+         <property name="text">
+          <string>German</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_8">
+         <property name="text">
+          <string>Translation:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QLabel" name="label_10">
+         <property name="text">
+          <string>Josef Latt</string>
+         </property>
+        </widget>
+       </item>
+       <item row="4" column="0">
+        <widget class="QLabel" name="label_16">
+         <property name="text">
+          <string>Spanish</string>
+         </property>
+        </widget>
+       </item>
+       <item row="4" column="1">
+        <widget class="QLabel" name="label_17">
+         <property name="text">
+          <string>Jose Luis Domingo Lopez</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item>
       <widget class="Line" name="line_2">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
diff --git a/src/IMainWindow.ui b/src/IMainWindow.ui
index 7ab60c2..56309eb 100644
--- a/src/IMainWindow.ui
+++ b/src/IMainWindow.ui
@@ -52,7 +52,7 @@
      <x>0</x>
      <y>0</y>
      <width>800</width>
-     <height>23</height>
+     <height>21</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuFile">
@@ -81,6 +81,7 @@
     <addaction name="actionNightDay"/>
     <addaction name="separator"/>
     <addaction name="actionFlipMouseWheel"/>
+    <addaction name="actionProfileIsWindow"/>
     <addaction name="actionSetupMapFont"/>
     <addaction name="actionSetupUnits"/>
     <addaction name="actionSetupGrid"/>
@@ -509,6 +510,21 @@
     <string>Restore view with active map and DEM list including the properties from a file</string>
    </property>
   </action>
+  <action name="actionProfileIsWindow">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/ProfileToWindow.png</normaloff>:/icons/32x32/ProfileToWindow.png</iconset>
+   </property>
+   <property name="text">
+    <string>Ext. Profile</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+E</string>
+   </property>
+  </action>
  </widget>
  <resources>
   <include location="resources.qrc"/>
diff --git a/src/canvas/CCanvas.cpp b/src/canvas/CCanvas.cpp
index fd67d44..835f91c 100644
--- a/src/canvas/CCanvas.cpp
+++ b/src/canvas/CCanvas.cpp
@@ -27,6 +27,7 @@
 #include "gis/trk/CGisItemTrk.h"
 #include "grid/CGrid.h"
 #include "grid/CGridSetup.h"
+#include "helpers/CSettings.h"
 #include "map/CMapDraw.h"
 #include "mouse/CMouseEditArea.h"
 #include "mouse/CMouseEditTrk.h"
@@ -120,6 +121,7 @@ CCanvas::CCanvas(QWidget *parent, const QString &name)
 
 CCanvas::~CCanvas()
 {
+    saveSizeTrackProfile();
 }
 
 void CCanvas::saveConfig(QSettings& cfg)
@@ -284,19 +286,7 @@ void CCanvas::resizeEvent(QResizeEvent * e)
 
     labelStatusMessages->move(20,50);
 
-    if(plotTrackProfile)
-    {
-        if(s.height() < 700)
-        {
-            plotTrackProfile->resize(200,80);
-        }
-        else
-        {
-            plotTrackProfile->resize(300,120);
-        }
-
-        plotTrackProfile->move(20, height() - plotTrackProfile->height() - 20);
-    }
+    setSizeTrackProfile();
 }
 
 void CCanvas::paintEvent(QPaintEvent * e)
@@ -610,6 +600,7 @@ void CCanvas::slotCheckTrackOnFocus()
     // any changes?
     if(key != keyTrackOnFocus)
     {
+        saveSizeTrackProfile();
         // get access to current track object
         delete plotTrackProfile;
         keyTrackOnFocus.clear();
@@ -622,17 +613,12 @@ void CCanvas::slotCheckTrackOnFocus()
         }
 
         // create new profile plot, the plot will register itself at the track
-        plotTrackProfile = new CPlotProfile(trk2, IPlot::eModeIcon, this);
-        if(height() < 700)
-        {
-            plotTrackProfile->resize(200,80);
-        }
-        else
+        plotTrackProfile = new CPlotProfile(trk2, CMainWindow::self().profileIsWindow() ? IPlot::eModeWindow : IPlot::eModeIcon, this);
+        setSizeTrackProfile();
+        if(isVisible())
         {
-            plotTrackProfile->resize(300,120);
+            plotTrackProfile->show();
         }
-        plotTrackProfile->move(20, height() - plotTrackProfile->height() - 20);
-        plotTrackProfile->show();
 
         // finally store the new key as track on focus
         keyTrackOnFocus = key;
@@ -720,3 +706,96 @@ bool CCanvas::findPolylineCloseBy(QPointF& pt1, QPointF& pt2, qint32 threshold,
 {
     return map->findPolylineCloseBy(pt1, pt2, threshold, polyline);
 }
+
+void CCanvas::saveSizeTrackProfile()
+{
+    if(plotTrackProfile == 0)
+    {
+        return;
+    }
+
+    if(plotTrackProfile->windowFlags() & Qt::Window)
+    {
+        SETTINGS;
+        cfg.beginGroup("Canvas");        
+        cfg.beginGroup("Profile");
+        cfg.beginGroup(objectName());
+
+        cfg.setValue("geometry", plotTrackProfile->saveGeometry());
+
+        cfg.endGroup(); // objectName()
+        cfg.endGroup(); // Profile        
+        cfg.endGroup(); // Canvas
+    }
+}
+
+void CCanvas::setSizeTrackProfile()
+{
+    if(plotTrackProfile == 0)
+    {
+        return;
+    }
+
+    if(plotTrackProfile->windowFlags() & Qt::Window)
+    {
+        SETTINGS;
+        cfg.beginGroup("Canvas");
+        cfg.beginGroup("Profile");
+        cfg.beginGroup(objectName());
+
+        if(cfg.contains("geometry"))
+        {
+            plotTrackProfile->restoreGeometry(cfg.value("geometry").toByteArray());
+        }
+        else
+        {
+            plotTrackProfile->resize(300,200);
+            plotTrackProfile->move(100,100);
+        }
+
+        cfg.endGroup(); // objectName()
+        cfg.endGroup(); // Profile        
+        cfg.endGroup(); // Canvas
+    }
+    else
+    {
+        if(size().height() < 700)
+        {
+            plotTrackProfile->resize(200,80);
+        }
+        else
+        {
+            plotTrackProfile->resize(300,120);
+        }
+
+        plotTrackProfile->move(20, height() - plotTrackProfile->height() - 20);
+    }
+}
+
+void CCanvas::showProfileAsWindow(bool yes)
+{
+    if(plotTrackProfile)
+    {
+        const IGisItem::key_t key = CGisItemTrk::getKeyUserFocus();
+
+        delete plotTrackProfile;
+        keyTrackOnFocus.clear();
+
+        CGisWidget::self().focusTrkByKey(true, key);
+    }
+}
+
+void CCanvas::showProfile(bool yes)
+{
+    if(plotTrackProfile)
+    {
+        if(yes)
+        {
+            plotTrackProfile->show();
+        }
+        else
+        {
+            plotTrackProfile->hide();
+        }
+    }
+}
diff --git a/src/canvas/CCanvas.h b/src/canvas/CCanvas.h
index e6428d9..68a363b 100644
--- a/src/canvas/CCanvas.h
+++ b/src/canvas/CCanvas.h
@@ -107,6 +107,9 @@ public:
     void setMouseEditArea(CGisItemOvlArea& area);
     void setMouseEditArea(const QPointF& pt);
 
+    void showProfileAsWindow(bool yes);
+    void showProfile(bool yes);
+
 
     /**
        @brief Add a message by key to be reported on the canvas
@@ -162,6 +165,8 @@ private:
     void drawStatusMessages(QPainter& p);
     void drawScale(QPainter& p);
     void setZoom(bool in, redraw_e &needsRedraw);
+    void setSizeTrackProfile();
+    void saveSizeTrackProfile();
 
     /// set true to initiate a complete redraw of the screen content
     redraw_e needsRedraw;
diff --git a/src/device/CDeviceTwoNav.cpp b/src/device/CDeviceTwoNav.cpp
index a7104f7..e865188 100644
--- a/src/device/CDeviceTwoNav.cpp
+++ b/src/device/CDeviceTwoNav.cpp
@@ -60,6 +60,18 @@ CDeviceTwoNav::CDeviceTwoNav(const QString &path, const QString &key, const QStr
             delete project;
         }
     }
+
+    // special case: read the gpx files in the track log directory.
+    dirData = dir.absoluteFilePath(pathData + "Tracklog");
+    entries = dirData.entryList(QStringList("*.gpx"));
+    foreach(const QString &entry, entries)
+    {
+        IGisProject * project =  new CGpxProject(dirData.absoluteFilePath(entry), this);
+        if(!project->isValid())
+        {
+            delete project;
+        }
+    }
 }
 
 CDeviceTwoNav::~CDeviceTwoNav()
diff --git a/src/device/IDevice.cpp b/src/device/IDevice.cpp
index 10541bc..b4218ed 100644
--- a/src/device/IDevice.cpp
+++ b/src/device/IDevice.cpp
@@ -186,9 +186,9 @@ void IDevice::updateProject(IGisProject * project)
         {
             return;
         }
-
-        insertCopyOfProject(project);
     }
+
+    insertCopyOfProject(project);
 }
 
 void IDevice::drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
diff --git a/src/device/IDevice.h b/src/device/IDevice.h
index ec67adf..c95a7ca 100644
--- a/src/device/IDevice.h
+++ b/src/device/IDevice.h
@@ -75,10 +75,10 @@ public:
     {
     }
 
+    IGisProject * getProjectByKey(const QString& key);
 
 protected:
     virtual void insertCopyOfProject(IGisProject * project) = 0;
-    IGisProject * getProjectByKey(const QString& key);
 
     QDir dir;
     QString key;
diff --git a/src/gis/CGisListWks.cpp b/src/gis/CGisListWks.cpp
index a98a305..b88069b 100644
--- a/src/gis/CGisListWks.cpp
+++ b/src/gis/CGisListWks.cpp
@@ -28,6 +28,7 @@
 #include "device/IDevice.h"
 #include "gis/CGisListWks.h"
 #include "gis/CGisWidget.h"
+#include "gis/CSelDevices.h"
 #include "gis/IGisItem.h"
 #include "gis/db/CDBProject.h"
 #include "gis/db/CLostFoundProject.h"
@@ -91,7 +92,7 @@ CGisListWks::CGisListWks(QWidget *parent)
     actionEditPrj   = menuProjectWks->addAction(QIcon("://icons/32x32/EditDetails.png"),tr("Edit.."), this, SLOT(slotEditPrj()));
     actionSaveAs    = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGISAs.png"),tr("Save As..."), this, SLOT(slotSaveAsProject()));
     actionSave      = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGIS.png"),tr("Save"), this, SLOT(slotSaveProject()));
-    actionSyncWksDev= menuProjectWks->addAction(QIcon("://icons/32x32/Device.png"),tr("Update Project on Devices"), this, SLOT(slotSyncWksDev()));
+    actionSyncWksDev= menuProjectWks->addAction(QIcon("://icons/32x32/Device.png"),tr("Send to Devices"), this, SLOT(slotSyncWksDev()));
     actionCloseProj = menuProjectWks->addAction(QIcon("://icons/32x32/Close.png"),tr("Close"), this, SLOT(slotCloseProject()));
 
     menuProjectDev  = new QMenu(this);
@@ -568,7 +569,7 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
             IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
             if(gisItem)
             {
-                project->insertCopyOfItem(gisItem, -1, lastResult);
+                project->insertCopyOfItem(gisItem, NOIDX, lastResult);
             }
         }
     }
@@ -579,8 +580,21 @@ void CGisListWks::dropEvent ( QDropEvent  * e )
         IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
         if(project)
         {
+            CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+            if(canvas)
+            {
+                canvas->reportStatus("device", tr("<b>Update devices</b><p>Update %1<br/>Please wait...</p>").arg(device->text(CGisListWks::eColumnName)));
+                canvas->update();
+                qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
+            }
+
             int lastResult = CSelectCopyAction::eResultNone;
             device->insertCopyOfProject(project, lastResult);
+
+            if(canvas)
+            {
+                canvas->reportStatus("device", "");
+            }
         }
     }
 
@@ -1049,7 +1063,7 @@ void CGisListWks::slotCopyItem()
             continue;
         }
 
-        project->insertCopyOfItem(gisItem, -1, lastResult);
+        project->insertCopyOfItem(gisItem, NOIDX, lastResult);
     }
 }
 
@@ -1192,7 +1206,7 @@ void CGisListWks::slotSearchGoogle(bool on)
 
 void CGisListWks::slotSyncWksDev()
 {
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
 
     IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
     if(project == 0)
@@ -1200,12 +1214,21 @@ void CGisListWks::slotSyncWksDev()
         return;
     }
 
+    QSet<QString> keys;
+    CSelDevices dlg(project, this);
+    if(dlg.exec() != QDialog::Accepted)
+    {
+        return;
+    }
+    dlg.getSlectedDevices(keys);
+
+
     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)
+        if(device == 0 || !keys.contains(device->getKey()))
         {
             continue;
         }
diff --git a/src/gis/CGisWidget.cpp b/src/gis/CGisWidget.cpp
index 5034d0e..adf7823 100644
--- a/src/gis/CGisWidget.cpp
+++ b/src/gis/CGisWidget.cpp
@@ -322,7 +322,7 @@ void CGisWidget::copyItemByKey(const IGisItem::key_t &key)
     }
 
     int lastResult = CSelectCopyAction::eResultNone;
-    project->insertCopyOfItem(item, -1, lastResult);
+    project->insertCopyOfItem(item, NOIDX, lastResult);
 
 
     emit sigChanged();
diff --git a/src/gis/CSelDevices.cpp b/src/gis/CSelDevices.cpp
new file mode 100644
index 0000000..aed62b2
--- /dev/null
+++ b/src/gis/CSelDevices.cpp
@@ -0,0 +1,76 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+**********************************************************************************************/
+
+#include "device/IDevice.h"
+#include "gis/CGisListWks.h"
+#include "gis/CSelDevices.h"
+#include "gis/prj/IGisProject.h"
+
+#include <QtWidgets>
+
+CSelDevices::CSelDevices(IGisProject * project, QTreeWidget *wks)
+    : QDialog(wks)
+
+{
+    setupUi(this);
+
+    const int N = wks->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IDevice * device = dynamic_cast<IDevice*>(wks->topLevelItem(n));
+        if(device == 0)
+        {
+            continue;
+        }
+
+        QListWidgetItem * item = new QListWidgetItem(listWidget);
+        item->setText(device->getName());
+        item->setData(Qt::UserRole, device->getKey());
+        item->setIcon(device->icon(CGisListWks::eColumnIcon));
+
+        IGisProject * proj = device->getProjectByKey(project->getKey());
+        if(proj)
+        {
+            item->setCheckState(Qt::Checked);
+        }
+        else
+        {
+            item->setCheckState(Qt::Unchecked);
+        }
+    }
+}
+
+CSelDevices::~CSelDevices()
+{
+}
+
+
+void CSelDevices::getSlectedDevices(QSet<QString>& keys)
+{
+    keys.clear();
+
+    const int N = listWidget->count();
+    for(int n = 0; n < N; n++)
+    {
+        QListWidgetItem * item = listWidget->item(n);
+        if(item->checkState() == Qt::Checked)
+        {
+            keys << item->data(Qt::UserRole).toString();
+        }
+    }
+}
diff --git a/src/plot/CPlotDistance.h b/src/gis/CSelDevices.h
similarity index 72%
copy from src/plot/CPlotDistance.h
copy to src/gis/CSelDevices.h
index ca6464f..8db3f46 100644
--- a/src/plot/CPlotDistance.h
+++ b/src/gis/CSelDevices.h
@@ -16,22 +16,24 @@
 
 **********************************************************************************************/
 
-#ifndef CPLOTDISTANCE_H
-#define CPLOTDISTANCE_H
+#ifndef CSELDEVICES_H
+#define CSELDEVICES_H
 
-#include "plot/IPlot.h"
+#include "ui_ISelDevices.h"
+#include <QDialog>
 
-class CPlotDistance : public IPlot
+class QTreeWidget;
+class IGisProject;
+
+class CSelDevices : public QDialog, private Ui::ISelDevices
 {
     Q_OBJECT
 public:
-    CPlotDistance(QWidget * parent);
-    virtual ~CPlotDistance();
+    CSelDevices(IGisProject *project, QTreeWidget * wks);
+    virtual ~CSelDevices();
 
-    void setTrack(CGisItemTrk * track);
-    void updateData();
-    void setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt);
+    void getSlectedDevices(QSet<QString>& keys);
 };
 
-#endif //CPLOTDISTANCE_H
+#endif //CSELDEVICES_H
 
diff --git a/src/gis/IGisItem.cpp b/src/gis/IGisItem.cpp
index 1778024..a639c4f 100644
--- a/src/gis/IGisItem.cpp
+++ b/src/gis/IGisItem.cpp
@@ -301,8 +301,8 @@ void IGisItem::updateHistory()
 
 void IGisItem::setupHistory()
 {
-    history.histIdxInitial = -1;
-    history.histIdxCurrent = -1;
+    history.histIdxInitial = NOIDX;
+    history.histIdxCurrent = NOIDX;
 
     // if history is empty setup an initial item
     if(history.events.isEmpty())
@@ -326,7 +326,7 @@ void IGisItem::setupHistory()
 
     // if no initial item can be found fill the last item with data
     // and make it the initial item
-    if(history.histIdxInitial == -1)
+    if(history.histIdxInitial == NOIDX)
     {
         history_event_t& event = history.events.last();
 
@@ -447,7 +447,6 @@ QColor IGisItem::str2color(const QString& name)
     {
         if((p->name == name) || (ref == p->color))
         {
-            qDebug() << p->name << p->color;
             return p->color;
         }
         p++;
@@ -613,31 +612,31 @@ QString IGisItem::createText(bool isReadOnly, const QString& cmt, const QString&
     QString str;
     bool isEmpty;
 
-    isEmpty = removeHtml(cmt).simplified().isEmpty();
+    isEmpty = removeHtml(desc).simplified().isEmpty();
     if(!isReadOnly || !isEmpty)
     {
-        str += toLink(isReadOnly, "comment", QObject::tr("<h4>Comment:</h4>"), key);
-        if(isEmpty)
+        str += toLink(isReadOnly, "description", QObject::tr("<h4>Description:</h4>"), key);
+        if(removeHtml(desc).simplified().isEmpty())
         {
-            str += QObject::tr("<p>--- no comment ---</p>");
+            str += QObject::tr("<p>--- no description ---</p>");
         }
         else
         {
-            str += cmt;
+            str += desc;
         }
     }
 
-    isEmpty = removeHtml(desc).simplified().isEmpty();
+    isEmpty = removeHtml(cmt).simplified().isEmpty();
     if(!isReadOnly || !isEmpty)
     {
-        str += toLink(isReadOnly, "description", QObject::tr("<h4>Description:</h4>"), key);
-        if(removeHtml(desc).simplified().isEmpty())
+        str += toLink(isReadOnly, "comment", QObject::tr("<h4>Comment:</h4>"), key);
+        if(isEmpty)
         {
-            str += QObject::tr("<p>--- no description ---</p>");
+            str += QObject::tr("<p>--- no comment ---</p>");
         }
         else
         {
-            str += desc;
+            str += cmt;
         }
     }
 
diff --git a/src/gis/ISelDevices.ui b/src/gis/ISelDevices.ui
new file mode 100644
index 0000000..5cbfe84
--- /dev/null
+++ b/src/gis/ISelDevices.ui
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ISelDevices</class>
+ <widget class="QDialog" name="ISelDevices">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>321</width>
+    <height>354</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Select devices...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QListWidget" name="listWidget"/>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>ISelDevices</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>ISelDevices</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/src/gis/db/CDBProject.cpp b/src/gis/db/CDBProject.cpp
index 6266932..fece4cd 100644
--- a/src/gis/db/CDBProject.cpp
+++ b/src/gis/db/CDBProject.cpp
@@ -75,6 +75,7 @@ CDBProject::CDBProject(const QString& dbName, quint64 id, CGisListWks *parent)
 
     setText(CGisListWks::eColumnName, name);
     setToolTip(CGisListWks::eColumnName, getInfo());
+    updateItems();
     valid = true;
 }
 
@@ -114,6 +115,8 @@ void CDBProject::postStatus()
         }
     }
 
+    updateItems();
+
     CGisWidget::self().postEventForDb(info);
 }
 
diff --git a/src/gis/gpx/CGpxProject.cpp b/src/gis/gpx/CGpxProject.cpp
index 0fe5ba8..20fb2bc 100644
--- a/src/gis/gpx/CGpxProject.cpp
+++ b/src/gis/gpx/CGpxProject.cpp
@@ -37,6 +37,7 @@ CGpxProject::CGpxProject(const QString &filename, CGisListWks *parent)
 {
     setIcon(CGisListWks::eColumnIcon,QIcon("://icons/32x32/GpxProject.png"));
     loadGpx(filename);
+    updateItems();
 }
 
 CGpxProject::CGpxProject(const QString &filename, IDevice * parent)
@@ -44,6 +45,7 @@ CGpxProject::CGpxProject(const QString &filename, IDevice * parent)
 {
     setIcon(CGisListWks::eColumnIcon,QIcon("://icons/32x32/GpxProject.png"));
     loadGpx(filename);
+    updateItems();
 }
 
 CGpxProject::CGpxProject(const QString &filename, const IGisProject * project, IDevice * parent)
@@ -59,13 +61,14 @@ CGpxProject::CGpxProject(const QString &filename, const IGisProject * project, I
         if(item)
         {
             int res = CSelectCopyAction::eResultNone;
-            insertCopyOfItem(item, -1, res);
+            insertCopyOfItem(item, NOIDX, res);
         }
     }
 
 
     setupName(QFileInfo(filename).baseName().replace("_", " "));
     setToolTip(CGisListWks::eColumnName, getInfo());
+    updateItems();
     valid = true;
 }
 
@@ -122,6 +125,11 @@ void CGpxProject::loadGpx(const QString& filename)
         key = xmlExtension.namedItem("ql:key").toElement().text();
     }
 
+    if(xmlExtension.namedItem("ql:sorting").isElement())
+    {
+        sorting = sorting_e(xmlExtension.namedItem("ql:sorting").toElement().text().toInt());
+    }
+
 
     const QDomNode& xmlMetadata = xmlGpx.namedItem("metadata");
     if(xmlMetadata.isElement())
@@ -368,6 +376,12 @@ bool CGpxProject::saveAs(const QString& fn, IGisProject& project)
         elem.appendChild(text);
     }
 
+    {
+        QDomElement elem = xmlExt.ownerDocument().createElement("ql:sorting");
+        xmlExt.appendChild(elem);
+        QDomText text = xmlExt.ownerDocument().createTextNode(QString::number(project.getSorting()));
+        elem.appendChild(text);
+    }
 
     //  ---- stop  content of gpx
 
diff --git a/src/gis/gpx/serialization.cpp b/src/gis/gpx/serialization.cpp
index 9cc1139..1dde452 100644
--- a/src/gis/gpx/serialization.cpp
+++ b/src/gis/gpx/serialization.cpp
@@ -961,8 +961,8 @@ void IGisItem::writeWpt(QDomElement& xml, const wpt_t& wpt)
     writeXml(xml, "magvar", wpt.magvar);
     writeXml(xml, "geoidheight", wpt.geoidheight);
     writeXml(xml, "name", wpt.name);
-    writeXml(xml, "cmt", wpt.cmt);
-    writeXml(xml, "desc", wpt.desc);
+    writeXml(xml, "cmt", IGisItem::removeHtml(wpt.cmt));
+    writeXml(xml, "desc", IGisItem::removeHtml(wpt.desc));
     writeXml(xml, "src", wpt.src);
     writeXml(xml, "link", wpt.links);
     writeXml(xml, "sym", wpt.sym);
diff --git a/src/gis/ovl/CGisItemOvlArea.cpp b/src/gis/ovl/CGisItemOvlArea.cpp
index 3c13949..714b6d8 100644
--- a/src/gis/ovl/CGisItemOvlArea.cpp
+++ b/src/gis/ovl/CGisItemOvlArea.cpp
@@ -172,7 +172,7 @@ CGisItemOvlArea::CGisItemOvlArea(const history_t& hist, IGisProject * project)
 }
 
 CGisItemOvlArea::CGisItemOvlArea(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeOvl, -1)
+    : IGisItem(project, eTypeOvl, NOIDX)
     , penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
     , penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
 {
@@ -208,8 +208,8 @@ bool CGisItemOvlArea::isCloseTo(const QPointF& pos)
 QPointF CGisItemOvlArea::getPointCloseBy(const QPoint& screenPos)
 {
     qint32 i    = 0;
-    qint32 idx  = -1;
-    qint32 d   = NOINT;
+    qint32 idx  = NOIDX;
+    qint32 d    = NOINT;
     foreach(const QPointF &point, line)
     {
         int tmp = (screenPos - point).manhattanLength();
diff --git a/src/gis/prj/CDetailsPrj.cpp b/src/gis/prj/CDetailsPrj.cpp
index b3c9c10..d56e8d9 100644
--- a/src/gis/prj/CDetailsPrj.cpp
+++ b/src/gis/prj/CDetailsPrj.cpp
@@ -40,8 +40,10 @@ CDetailsPrj::CDetailsPrj(IGisProject &prj, QWidget *parent)
     connect(textDesc, SIGNAL(anchorClicked(QUrl)), this, SLOT(slotLinkActivated(QUrl)));
     connect(toolPrint, SIGNAL(clicked()), this, SLOT(slotPrint()));
     connect(toolReload, SIGNAL(clicked()), this, SLOT(slotSetupGui()));
-    connect(radioSortByTime, SIGNAL(clicked()), this, SLOT(slotSetupGui()));
-    connect(radioOrderAsProject, SIGNAL(clicked()), this, SLOT(slotSetupGui()));
+    connect(radioSortByTime, SIGNAL(clicked()), this, SLOT(slotSortMode()));
+    connect(radioOrderAsProject, SIGNAL(clicked()), this, SLOT(slotSortMode()));
+    connect(radioSortAlongTrack, SIGNAL(clicked()), this, SLOT(slotSortMode()));
+    connect(toolLock, SIGNAL(clicked(bool)), this, SLOT(slotLock(bool)));
 
     slotSetupGui();
 }
@@ -74,6 +76,41 @@ void CDetailsPrj::slotSetupGui()
 {
     textDesc->document()->setTextWidth(textDesc->size().width() - 20);
     draw(*textDesc->document(), false);
+
+    radioOrderAsProject->blockSignals(true);
+    radioSortByTime->blockSignals(true);
+    radioSortAlongTrack->blockSignals(true);
+    switch(prj.getSorting())
+    {
+    case IGisProject::eSortNone:
+        radioOrderAsProject->setChecked(true);
+        break;
+
+    case IGisProject::eSortTime:
+        radioSortByTime->setChecked(true);
+        break;
+
+    case IGisProject::eSortTrack:
+        radioSortAlongTrack->setChecked(true);
+        break;
+    }
+    radioOrderAsProject->blockSignals(false);
+    radioSortByTime->blockSignals(false);
+    radioSortAlongTrack->blockSignals(false);
+
+    toolLock->blockSignals(true);
+    toolLock->setChecked(true);
+    const int N = prj.childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(prj.child(n));
+        if(item && !item->isReadOnly())
+        {
+            toolLock->setChecked(false);
+            break;
+        }
+    }
+    toolLock->blockSignals(false);
 }
 
 #define ROOT_FRAME_MARGIN 5
@@ -107,26 +144,21 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
     f.setPointSize(pointSize);
     textDesc->setFont(f);
 
-    QTextFrameFormat fmtFrameStandard;
     fmtFrameStandard.setTopMargin(5);
     fmtFrameStandard.setBottomMargin(5);
     fmtFrameStandard.setWidth(w - 2 * ROOT_FRAME_MARGIN);
 
-    QTextCharFormat fmtCharStandard;
     fmtCharStandard.setFont(f);
 
-    QTextBlockFormat fmtBlockStandard;
     fmtBlockStandard.setTopMargin(10);
     fmtBlockStandard.setBottomMargin(10);
     fmtBlockStandard.setAlignment(Qt::AlignJustify);
 
-    QTextFrameFormat fmtFrameRoot;
     fmtFrameRoot.setTopMargin(0);
     fmtFrameRoot.setBottomMargin(ROOT_FRAME_MARGIN);
     fmtFrameRoot.setLeftMargin(ROOT_FRAME_MARGIN);
     fmtFrameRoot.setRightMargin(ROOT_FRAME_MARGIN);
 
-    QTextTableFormat fmtTableStandard;
     fmtTableStandard.setBorder(1);
     fmtTableStandard.setBorderBrush(Qt::black);
     fmtTableStandard.setCellPadding(4);
@@ -142,11 +174,8 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
     constraints << QTextLength(QTextLength::VariableLength, 100);
     fmtTableStandard.setColumnWidthConstraints(constraints);
 
-    QTextTableFormat fmtTableInfo;
     fmtTableInfo.setBorder(0);
 
-
-    QTextCharFormat fmtCharHeader;
     fmtCharHeader.setFont(f);
     fmtCharHeader.setBackground(Qt::darkBlue);
     fmtCharHeader.setFontWeight(QFont::Bold);
@@ -219,27 +248,75 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
         }
     }
 
+
+    int n=1;
+    QProgressDialog progress(tr("Build diary..."), tr("Abort"), 0, 100, this);
+    progress.setWindowModality(Qt::WindowModal);
+
+    if(radioSortAlongTrack->isChecked())
+    {
+        drawByTrack(cursor, trks, wpts, progress, n, nItems, printable);
+    }
+    else
+    {
+        drawByGroup(cursor, trks, wpts, progress, n, nItems, printable);
+    }
+
+    if(!areas.isEmpty())
+    {
+        cursor.insertHtml(tr("<h2>Areas</h2>"));
+        QTextTable * table = cursor.insertTable(areas.count()+1, eMax1, fmtTableStandard);
+
+        table->cellAt(0,eSym1).setFormat(fmtCharHeader);
+        table->cellAt(0,eInfo1).setFormat(fmtCharHeader);
+        table->cellAt(0,eComment1).setFormat(fmtCharHeader);
+
+        table->cellAt(0,eInfo1).firstCursorPosition().insertText(tr("Info"));
+        table->cellAt(0,eComment1).firstCursorPosition().insertText(tr("Comment"));
+
+        cnt = 1;
+        foreach(CGisItemOvlArea * area, areas)
+        {
+            progress.setValue(n++ *100.0/nItems);
+            if(progress.wasCanceled())
+            {
+                return;
+            }
+
+
+            table->cellAt(cnt,eSym1).firstCursorPosition().insertImage(area->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
+            table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(area->getInfo());
+            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(area->isReadOnly()||printable, area->getComment(), area->getDescription(), area->getLinks(), area->getKey().item));
+            cnt++;
+        }
+
+        cursor.setPosition(table->lastPosition() + 1);
+    }
+
+    textDesc->verticalScrollBar()->setValue(scrollVal);
+}
+
+void CDetailsPrj::drawByGroup(QTextCursor &cursor, QList<CGisItemTrk*>& trks, QList<CGisItemWpt*>& wpts, QProgressDialog& progress, int& n, int nItems, bool printable)
+{
+    int cnt, w = cursor.document()->textWidth();
+
     if(radioSortByTime->isChecked())
     {
         qSort(trks.begin(), trks.end(), sortTrkByTime);
         qSort(wpts.begin(), wpts.end(), sortWptByTime);
     }
 
-    int n=1;
-    QProgressDialog progress(tr("Build diary..."), tr("Abort"), 0, 100, this);
-    progress.setWindowModality(Qt::WindowModal);
-
     if(!wpts.isEmpty())
     {
         cursor.insertHtml(tr("<h2>Waypoints</h2>"));
-        QTextTable * table = cursor.insertTable(wpts.count()+1, eMax, fmtTableStandard);
+        QTextTable * table = cursor.insertTable(wpts.count()+1, eMax1, fmtTableStandard);
 
-        table->cellAt(0,eSym).setFormat(fmtCharHeader);
-        table->cellAt(0,eInfo).setFormat(fmtCharHeader);
-        table->cellAt(0,eComment).setFormat(fmtCharHeader);
+        table->cellAt(0,eSym1).setFormat(fmtCharHeader);
+        table->cellAt(0,eInfo1).setFormat(fmtCharHeader);
+        table->cellAt(0,eComment1).setFormat(fmtCharHeader);
 
-        table->cellAt(0,eInfo).firstCursorPosition().insertText(tr("Info"));
-        table->cellAt(0,eComment).firstCursorPosition().insertText(tr("Comment"));
+        table->cellAt(0,eInfo1).firstCursorPosition().insertText(tr("Info"));
+        table->cellAt(0,eComment1).firstCursorPosition().insertText(tr("Comment"));
 
         cnt = 1;
         foreach(CGisItemWpt * wpt, wpts)
@@ -251,9 +328,9 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
             }
 
 
-            table->cellAt(cnt,eSym).firstCursorPosition().insertImage(wpt->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
-            table->cellAt(cnt,eInfo).firstCursorPosition().insertHtml(wpt->getInfo());
-            table->cellAt(cnt,eComment).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
+            table->cellAt(cnt,eSym1).firstCursorPosition().insertImage(wpt->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
+            table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(wpt->getInfo());
+            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
             cnt++;
         }
 
@@ -263,14 +340,14 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
     if(!trks.isEmpty())
     {
         cursor.insertHtml(tr("<h2>Tracks</h2>"));
-        QTextTable * table = cursor.insertTable(trks.count()+1, eMax, fmtTableStandard);
+        QTextTable * table = cursor.insertTable(trks.count()+1, eMax1, fmtTableStandard);
 
-        table->cellAt(0,eSym).setFormat(fmtCharHeader);
-        table->cellAt(0,eInfo).setFormat(fmtCharHeader);
-        table->cellAt(0,eComment).setFormat(fmtCharHeader);
+        table->cellAt(0,eSym1).setFormat(fmtCharHeader);
+        table->cellAt(0,eInfo1).setFormat(fmtCharHeader);
+        table->cellAt(0,eComment1).setFormat(fmtCharHeader);
 
-        table->cellAt(0,eInfo).firstCursorPosition().insertText(tr("Info"));
-        table->cellAt(0,eComment).firstCursorPosition().insertText(tr("Comment"));
+        table->cellAt(0,eInfo1).firstCursorPosition().insertText(tr("Info"));
+        table->cellAt(0,eComment1).firstCursorPosition().insertText(tr("Comment"));
 
         cnt = 1;
 
@@ -282,16 +359,16 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
                 return;
             }
 
-            table->cellAt(cnt,eSym).firstCursorPosition().insertImage(trk->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
+            table->cellAt(cnt,eSym1).firstCursorPosition().insertImage(trk->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
 
             int w1 = qRound(w/3.5 > 300 ? 300 : w/3.5);
             int h1 = qRound(w1/2.0);
 
             if(w1 < 300)
             {
-                table->cellAt(cnt,eInfo).firstCursorPosition().insertHtml(trk->getInfo());
+                table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(trk->getInfo());
 
-                QTextTable * table1 = table->cellAt(cnt,eInfo).lastCursorPosition().insertTable(1, 2, fmtTableInfo);
+                QTextTable * table1 = table->cellAt(cnt,eInfo1).lastCursorPosition().insertTable(1, 2, fmtTableInfo);
 
                 QImage profile(w1,h1,QImage::Format_ARGB32);
                 getTrackProfile(trk, profile);
@@ -303,7 +380,7 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
             }
             else
             {
-                QTextTable * table1 = table->cellAt(cnt,eInfo).firstCursorPosition().insertTable(1, 3, fmtTableInfo);
+                QTextTable * table1 = table->cellAt(cnt,eInfo1).firstCursorPosition().insertTable(1, 3, fmtTableInfo);
 
                 table1->cellAt(0,0).firstCursorPosition().insertHtml(trk->getInfo());
 
@@ -316,7 +393,7 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
                 table1->cellAt(0,2).firstCursorPosition().insertImage(overview);
             }
 
-            table->cellAt(cnt,eComment).firstCursorPosition().insertHtml(IGisItem::createText(trk->isReadOnly()||printable, trk->getComment(), trk->getDescription(), trk->getLinks(), trk->getKey().item));
+            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(trk->isReadOnly()||printable, trk->getComment(), trk->getDescription(), trk->getLinks(), trk->getKey().item));
 
             cnt++;
         }
@@ -324,21 +401,65 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
 
         cursor.setPosition(table->lastPosition() + 1);
     }
+}
 
-    if(!areas.isEmpty())
+struct wpt_info_t
+{
+    IGisItem::key_t key;
+    qreal distance;
+    qreal ascend;
+    qreal descend;
+};
+
+void CDetailsPrj::drawByTrack(QTextCursor& cursor, QList<CGisItemTrk *> &trks, QList<CGisItemWpt *> &wpts, QProgressDialog &progress, int &n, int nItems, bool printable)
+{
+    int cnt, w = cursor.document()->textWidth();
+
+    if(radioSortByTime->isChecked())
     {
-        cursor.insertHtml(tr("<h2>Areas</h2>"));
-        QTextTable * table = cursor.insertTable(areas.count()+1, eMax, fmtTableStandard);
+        qSort(trks.begin(), trks.end(), sortTrkByTime);
+    }
+
+    const qreal w1 = qRound(w/3.5 > 300 ? 300 : w/3.5);
+    const qreal h1 = qRound(w1/2.0);
+
+
+    foreach(CGisItemTrk * trk, trks)
+    {
+        QList<wpt_info_t> wptInfo;
+        const CGisItemTrk::trk_t& t = trk->getTrackData();
+        foreach (const CGisItemTrk::trkseg_t& seg, t.segs)
+        {
+            foreach(const CGisItemTrk::trkpt_t& trkpt, seg.pts)
+            {
+                if((trkpt.flags & CGisItemTrk::trkpt_t::eHidden) || trkpt.keyWpt.item.isEmpty())
+                {
+                    continue;
+                }
+
+                wptInfo << wpt_info_t();
+                wpt_info_t& info = wptInfo.last();
+                info.key        = trkpt.keyWpt;
+                info.distance   = trkpt.distance;
+                info.ascend     = trkpt.ascend;
+                info.descend    = trkpt.descend;
+            }
+        }
 
-        table->cellAt(0,eSym).setFormat(fmtCharHeader);
-        table->cellAt(0,eInfo).setFormat(fmtCharHeader);
-        table->cellAt(0,eComment).setFormat(fmtCharHeader);
+        cursor.insertHtml(QString("<h2>%1</h2>").arg(trk->getName()));
+        QTextTable * table = cursor.insertTable(wptInfo.count()+2, eMax2, fmtTableStandard);
 
-        table->cellAt(0,eInfo).firstCursorPosition().insertText(tr("Info"));
-        table->cellAt(0,eComment).firstCursorPosition().insertText(tr("Comment"));
+        table->cellAt(0,eSym2).setFormat(fmtCharHeader);
+        table->cellAt(0,eInfo2).setFormat(fmtCharHeader);
+        table->cellAt(0,eData2).setFormat(fmtCharHeader);
+        table->cellAt(0,eComment2).setFormat(fmtCharHeader);
+
+        table->cellAt(0,eInfo2).firstCursorPosition().insertText(tr("Info"));
+        table->cellAt(0,eComment2).firstCursorPosition().insertText(tr("Comment"));
 
         cnt = 1;
-        foreach(CGisItemOvlArea * area, areas)
+
+        foreach(const wpt_info_t &info, wptInfo)
         {
             progress.setValue(n++ *100.0/nItems);
             if(progress.wasCanceled())
@@ -346,17 +467,72 @@ void CDetailsPrj::draw(QTextDocument& doc, bool printable)
                 return;
             }
 
+            CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(prj.getItemByKey(info.key));
+            if(wpt != 0)
+            {
+                table->cellAt(cnt,eSym2).firstCursorPosition().insertImage(wpt->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
+                table->cellAt(cnt,eInfo2).firstCursorPosition().insertHtml(wpt->getInfo());
+
+                QTextTable * table1 = table->cellAt(cnt,eData2).lastCursorPosition().insertTable(1, 2, fmtTableInfo);
+
+                QString text, val, unit;
+                IUnit::self().meter2distance(info.distance, val, unit);
+                text += "<div>"+ tr("distance: %1%2").arg(val).arg(unit) + "</div>";
+                IUnit::self().meter2elevation(info.ascend, val, unit);
+                text += "<div>"+ tr("ascent: %1%2").arg(val).arg(unit) + "</div>";
+                IUnit::self().meter2elevation(info.descend, val, unit);
+                text += "<div>"+ tr("descend: %1%2").arg(val).arg(unit) + "</div>";
+
+                table1->cellAt(0,0).firstCursorPosition().insertHtml(text);
+
+                const QList<CGisItemWpt::image_t>& images = wpt->getImages();
+                if(!images.isEmpty())
+                {
+                    QImage image(images.first().pixmap);
+                    qDebug() << image.size();
+
+                    int w = image.width();
+                    int h = image.height();
+
+                    if(w < h)
+                    {
+                        h *= 100.0 / w;
+                        w  = 100;
+                    }
+                    else
+                    {
+                        h *= 200.0 / w;
+                        w  = 200;
+                    }
+                    qDebug() << w << h;
+                    image = image.scaled(w,h,Qt::KeepAspectRatio, Qt::SmoothTransformation);
+
+
+                    table1->cellAt(0,1).firstCursorPosition().insertImage(image);
+                }
 
-            table->cellAt(cnt,eSym).firstCursorPosition().insertImage(area->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
-            table->cellAt(cnt,eInfo).firstCursorPosition().insertHtml(area->getInfo());
-            table->cellAt(cnt,eComment).firstCursorPosition().insertHtml(IGisItem::createText(area->isReadOnly()||printable, area->getComment(), area->getDescription(), area->getLinks(), area->getKey().item));
+                table->cellAt(cnt,eComment2).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
+            }
             cnt++;
         }
 
+        table->cellAt(cnt,eSym2).firstCursorPosition().insertImage(trk->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
+        table->cellAt(cnt,eInfo2).firstCursorPosition().insertHtml(trk->getInfo());
+
+        QTextTable * table1 = table->cellAt(cnt,eData2).lastCursorPosition().insertTable(1, 2, fmtTableInfo);
+
+        QImage profile(w1,h1,QImage::Format_ARGB32);
+        getTrackProfile(trk, profile);
+        table1->cellAt(0,0).firstCursorPosition().insertImage(profile);
+
+        QImage overview(h1,h1,QImage::Format_ARGB32);
+        getTrackOverview(trk, overview);
+        table1->cellAt(0,1).firstCursorPosition().insertImage(overview);
+
+        table->cellAt(cnt,eComment2).firstCursorPosition().insertHtml(IGisItem::createText(trk->isReadOnly()||printable, trk->getComment(), trk->getDescription(), trk->getLinks(), trk->getKey().item));
+
         cursor.setPosition(table->lastPosition() + 1);
     }
-
-    textDesc->verticalScrollBar()->setValue(scrollVal);
 }
 
 void CDetailsPrj::slotLinkActivated(const QString& link)
@@ -521,3 +697,35 @@ void CDetailsPrj::slotPrint()
     slotSetupGui();
 }
 
+void CDetailsPrj::slotLock(bool on)
+{
+    const int N = prj.childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(prj.child(n));
+        if(item && (item->isReadOnly() != on))
+        {
+            item->setReadOnlyMode(on);
+        }
+    }
+
+    slotSetupGui();
+}
+
+void CDetailsPrj::slotSortMode()
+{
+    if(radioOrderAsProject->isChecked())
+    {
+        prj.setSorting(IGisProject::eSortNone);
+    }
+    else if(radioSortAlongTrack->isChecked())
+    {
+        prj.setSorting(IGisProject::eSortTrack);
+    }
+    else if(radioSortByTime->isChecked())
+    {
+        prj.setSorting(IGisProject::eSortTime);
+    }
+
+    slotSetupGui();
+}
diff --git a/src/gis/prj/CDetailsPrj.h b/src/gis/prj/CDetailsPrj.h
index 4a5233c..d8ebe77 100644
--- a/src/gis/prj/CDetailsPrj.h
+++ b/src/gis/prj/CDetailsPrj.h
@@ -26,6 +26,8 @@
 class CDetailsPrj;
 class IGisProject;
 class CGisItemTrk;
+class CGisItemWpt;
+class QProgressDialog;
 
 class CDetailsPrj : public QWidget, private Ui::IDetailsPrj
 {
@@ -41,16 +43,28 @@ private slots:
     void slotLinkActivated(const QString& link);
     void slotLinkActivated(const QUrl& url);
     void slotPrint();
+    void slotLock(bool on);
+    void slotSortMode();
     void slotSetupGui();
 
 private:
     void getTrackProfile(CGisItemTrk * trk, QImage& image);
     void getTrackOverview(CGisItemTrk * trk, QImage& image);
     void draw(QTextDocument& doc, bool printable);
+    void drawByGroup(QTextCursor& cursor, QList<CGisItemTrk *> &trks, QList<CGisItemWpt *> &wpts, QProgressDialog &progress, int &n, int nItems, bool printable);
+    void drawByTrack(QTextCursor& cursor, QList<CGisItemTrk *> &trks, QList<CGisItemWpt *> &wpts, QProgressDialog &progress, int &n, int nItems, bool printable);
 
-    enum eTblCol {eSym, eInfo, eComment, eMax};
+    enum eTblCol1 {eSym1, eInfo1, eComment1, eMax1};
+    enum eTblCol2 {eSym2, eInfo2, eData2, eComment2, eMax2};
 
     IGisProject& prj;
+    QTextFrameFormat fmtFrameStandard;
+    QTextCharFormat fmtCharStandard;
+    QTextBlockFormat fmtBlockStandard;
+    QTextFrameFormat fmtFrameRoot;
+    QTextTableFormat fmtTableStandard;
+    QTextTableFormat fmtTableInfo;
+    QTextCharFormat fmtCharHeader;
 };
 
 #endif //CDETAILSPRJ_H
diff --git a/src/gis/prj/IDetailsPrj.ui b/src/gis/prj/IDetailsPrj.ui
index 77631cc..5e225f8 100644
--- a/src/gis/prj/IDetailsPrj.ui
+++ b/src/gis/prj/IDetailsPrj.ui
@@ -59,6 +59,19 @@
       </widget>
      </item>
      <item>
+      <widget class="QRadioButton" name="radioOrderAsProject">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>Keep Order of Project</string>
+       </property>
+      </widget>
+     </item>
+     <item>
       <widget class="QRadioButton" name="radioSortByTime">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@@ -75,7 +88,7 @@
       </widget>
      </item>
      <item>
-      <widget class="QRadioButton" name="radioOrderAsProject">
+      <widget class="QRadioButton" name="radioSortAlongTrack">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
          <horstretch>0</horstretch>
@@ -83,7 +96,28 @@
         </sizepolicy>
        </property>
        <property name="text">
-        <string>Keep Order of Project</string>
+        <string>Sort Along Track</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolLock">
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/UnLock.png</normaloff>
+         <normalon>:/icons/32x32/Lock.png</normalon>:/icons/32x32/UnLock.png</iconset>
+       </property>
+       <property name="iconSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
        </property>
       </widget>
      </item>
diff --git a/src/gis/prj/IGisProject.cpp b/src/gis/prj/IGisProject.cpp
index 0cdc8b0..cae2d75 100644
--- a/src/gis/prj/IGisProject.cpp
+++ b/src/gis/prj/IGisProject.cpp
@@ -37,6 +37,7 @@ IGisProject::IGisProject(type_e type, const QString &filename, CGisListWks *pare
     , type(type)
     , filename(filename)
     , valid(false)
+    , sorting(eSortNone)
 {
     setCheckState(CGisListWks::eColumnDecoration, Qt::Checked);
 }
@@ -46,6 +47,7 @@ IGisProject::IGisProject(type_e type, const QString &filename, IDevice *parent)
     , type(type)
     , filename(filename)
     , valid(false)
+    , sorting(eSortNone)
 {
     setCheckState(CGisListWks::eColumnDecoration, Qt::Checked);
 }
@@ -141,12 +143,31 @@ void IGisProject::setLinks(const QList<IGisItem::link_t>& links)
     setChanged();
 }
 
+void IGisProject::setSorting(sorting_e s)
+{
+    sorting = s;
+    setChanged();
+}
+
 void IGisProject::setChanged()
 {
     setText(CGisListWks::eColumnDecoration,"*");
+    updateItems();
 }
 
 
+void IGisProject::updateItems()
+{
+    for(int i = 0; i < childCount(); i++)
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(child(i));
+        if(trk)
+        {
+            trk->findWaypointsCloseBy();
+        }
+    }
+}
+
 void IGisProject::setupName(const QString &defaultName)
 {
     if(metadata.name.isEmpty())
diff --git a/src/gis/prj/IGisProject.h b/src/gis/prj/IGisProject.h
index 57bd6be..4c22282 100644
--- a/src/gis/prj/IGisProject.h
+++ b/src/gis/prj/IGisProject.h
@@ -44,6 +44,13 @@ public:
         , eTypeTwoNav
     };
 
+    enum sorting_e
+    {
+        eSortNone
+        , eSortTime
+        , eSortTrack
+    };
+
     struct person_t
     {
         QString name;
@@ -149,12 +156,22 @@ public:
         return metadata.links;
     }
 
+    sorting_e getSorting() const
+    {
+        return sorting;
+    }
+
     void setName(const QString& str);
     void setKeywords(const QString& str);
     void setDescription(const QString& str);
     void setLinks(const QList<IGisItem::link_t>& links);
+    /**
+       @brief Set change mark
+     */
     void setChanged();
 
+    void setSorting(sorting_e s);
+
     /**
        @brief Get a short metadata summary
        @return Informational string.
@@ -216,15 +233,22 @@ public:
         return valid;
     }
 
+    /**
+       @brief Test if visibility check mark is set
+       @return True if project is visible
+     */
     bool isVisible() const;
 
-
     /**
        @brief Test if this project is handled by a device
        @return True if handled by a device
      */
     bool isOnDevice() const;
 
+    /**
+       @brief Test if project has been changed
+       @return True if changed.
+     */
     bool isChanged() const;
 
     void drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis);
@@ -286,6 +310,8 @@ protected:
     void setupName(const QString& defaultName);
     void markAsSaved();
     void readMetadata(const QDomNode& xml, metadata_t& metadata);
+    void updateItems();
+
 
 
     // Those are the URIs of the GPX extensions we support
@@ -307,6 +333,8 @@ protected:
     metadata_t metadata;
 
     QPointer<CDetailsPrj> dlgDetails;
+
+    sorting_e sorting;
 };
 
 #endif //IGISPROJECT_H
diff --git a/src/gis/qms/CQmsProject.cpp b/src/gis/qms/CQmsProject.cpp
index 8cdd940..3f2abd2 100644
--- a/src/gis/qms/CQmsProject.cpp
+++ b/src/gis/qms/CQmsProject.cpp
@@ -59,6 +59,7 @@ CQmsProject::CQmsProject(const QString &filename, CGisListWks *parent)
 
     setupName(QFileInfo(filename).baseName().replace("_", " "));
     setToolTip(CGisListWks::eColumnName, getInfo());
+    updateItems();
     valid = true;
 }
 
diff --git a/src/gis/qms/serialization.cpp b/src/gis/qms/serialization.cpp
index 2c46202..dde4448 100644
--- a/src/gis/qms/serialization.cpp
+++ b/src/gis/qms/serialization.cpp
@@ -38,7 +38,7 @@
 #define VER_GC_T        quint8(1)
 #define VER_GCLOG_T     quint8(1)
 #define VER_IMAGE       quint8(1)
-#define VER_PROJECT     quint8(2)
+#define VER_PROJECT     quint8(3)
 #define VER_COPYRIGHT   quint8(1)
 #define VER_PERSON      quint8(1)
 #define VER_HIST        quint8(1)
@@ -674,6 +674,12 @@ QDataStream& IGisProject::operator<<(QDataStream& stream)
     {
         stream >> key;
     }
+    if(version > 2)
+    {
+        qint32 tmp;
+        stream >> tmp;
+        sorting = (sorting_e)tmp;
+    }
 
     while(!stream.atEnd())
     {
@@ -715,6 +721,7 @@ QDataStream& IGisProject::operator<<(QDataStream& stream)
         }
     }
 
+    updateItems();
     return stream;
 }
 
@@ -733,6 +740,7 @@ QDataStream& IGisProject::operator>>(QDataStream& stream)
     stream << metadata.keywords;
     stream << metadata.bounds;
     stream << key;
+    stream << qint32(sorting);
 
     for(int i = 0; i < childCount(); i++)
     {
@@ -815,6 +823,12 @@ QDataStream& CDBProject::operator<<(QDataStream& stream)
     {
         stream >> key;
     }
+    if(version > 2)
+    {
+        qint32 tmp;
+        stream >> tmp;
+        sorting = (sorting_e)tmp;
+    }
 
     return stream;
 }
@@ -834,6 +848,7 @@ QDataStream& CDBProject::operator>>(QDataStream& stream)
     stream << metadata.keywords;
     stream << metadata.bounds;
     stream << key;
+    stream << qint32(sorting);
 
     return stream;
 }
diff --git a/src/gis/rte/CGisItemRte.cpp b/src/gis/rte/CGisItemRte.cpp
index 2d2dec2..0dc2c8e 100644
--- a/src/gis/rte/CGisItemRte.cpp
+++ b/src/gis/rte/CGisItemRte.cpp
@@ -75,7 +75,7 @@ CGisItemRte::CGisItemRte(const history_t& hist, IGisProject * project)
 }
 
 CGisItemRte::CGisItemRte(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeRte, -1)
+    : IGisItem(project, eTypeRte, NOIDX)
     , penForeground(Qt::magenta, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
 {
     loadFromDb(id, db);
diff --git a/src/gis/tnv/CTwoNavProject.cpp b/src/gis/tnv/CTwoNavProject.cpp
index c98ca19..7e4baab 100644
--- a/src/gis/tnv/CTwoNavProject.cpp
+++ b/src/gis/tnv/CTwoNavProject.cpp
@@ -40,6 +40,7 @@ CTwoNavProject::CTwoNavProject(const QString &filename, IDevice * parent)
 
     setupName(QFileInfo(filename).baseName().replace("_", " "));
     setToolTip(CGisListWks::eColumnName, getInfo());
+    updateItems();
     valid = true;
 }
 
@@ -56,13 +57,14 @@ CTwoNavProject::CTwoNavProject(const QString &filename, const IGisProject * proj
         if(item)
         {
             int res = CSelectCopyAction::eResultNone;
-            insertCopyOfItem(item, -1, res);
+            insertCopyOfItem(item, NOIDX, res);
         }
     }
 
 
     setupName(QFileInfo(filename).baseName().replace("_", " "));
     setToolTip(CGisListWks::eColumnName, getInfo());
+    updateItems();
     valid = true;
 }
 
@@ -219,6 +221,7 @@ bool CTwoNavProject::saveWpts(QList<CGisItemWpt*>& wpts, const QString& filename
         }
     }
 
+    out << bom;
     out << "B  UTF-8" << endl;
     out << "G  WGS 84" << endl;
     out << "U  1" << endl;
diff --git a/src/gis/tnv/CTwoNavProject.h b/src/gis/tnv/CTwoNavProject.h
index 457d6ec..fe0076b 100644
--- a/src/gis/tnv/CTwoNavProject.h
+++ b/src/gis/tnv/CTwoNavProject.h
@@ -49,6 +49,7 @@ public:
         QDateTime time;
         QString name;
         QString comment;
+        QString description;
         QString symbol;
         QString key;
         QString url;
diff --git a/src/gis/tnv/serialization.cpp b/src/gis/tnv/serialization.cpp
index 9ffd32c..c140fa5 100644
--- a/src/gis/tnv/serialization.cpp
+++ b/src/gis/tnv/serialization.cpp
@@ -222,7 +222,10 @@ static QDateTime readCompeTime(QString str, bool isTrack)
         if(isTrack)
         {
             timestamp = QDateTime::fromString(str, "dd-MM-yy hh:mm:ss.zzz");
-            timestamp = timestamp.addYears(100);
+            if(timestamp.isValid())
+            {
+                timestamp = timestamp.addYears(100);
+            }
         }
         else
         {
@@ -293,8 +296,12 @@ bool CGisItemTrk::saveTwoNav(const QString &filename)
         return false;
     }
 
+    QDir dir(QFileInfo(filename).absoluteDir());
+    IGisProject * project = dynamic_cast<IGisProject*>(parent());
+
     QTextStream out(&file);
     out.setCodec(QTextCodec::codecForName("UTF-8"));
+    out << bom;
     out << "B  UTF-8" << endl;
     out << "G  WGS 84" << endl;
     out << "U  1" << endl;
@@ -314,7 +321,7 @@ bool CGisItemTrk::saveTwoNav(const QString &filename)
     out << list.join(" ") << endl;
 
     out << "s " << name << endl;
-    out << "k " << getKey().item << endl;
+    out << "y " << getKey().item << endl;
 
 
     foreach(const CGisItemTrk::trkseg_t& seg, trk.segs)
@@ -344,6 +351,55 @@ bool CGisItemTrk::saveTwoNav(const QString &filename)
             list << "-1.000000";
 
             out << list.join(" ") << endl;
+
+            if(!trkpt.keyWpt.item.isEmpty() && project)
+            {
+                CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(project->getItemByKey(trkpt.keyWpt));
+                if(wpt)
+                {
+                    QString iconName    = wpt->getIconName();
+                    QPixmap icon        = wpt->getIcon();
+                    icon                = icon.scaledToWidth(15, Qt::SmoothTransformation);
+                    iconName            = iconQlGt2TwoNav(iconName);
+                    iconName            = iconName.replace(" ", "_");
+
+                    icon.save(dir.absoluteFilePath(iconName + ".png"));
+
+                    list.clear();
+                    list << (iconName + ".png");
+                    list << "1";
+                    list << "3";
+                    list << "0";
+                    list << wpt->getName();
+                    out << "a " << list.join(",") << endl;
+
+                    foreach(const CGisItemWpt::image_t& img, wpt->getImages())
+                    {
+                        QString fn = img.info;
+                        if(fn.isEmpty())
+                        {
+                            fn = QString("picture.png");
+                        }
+
+                        QFileInfo fi(fn);
+
+                        if(!(fi.completeSuffix() == "png"))
+                        {
+                            fn = fi.baseName() + ".png";
+                        }
+
+                        fn = makeUniqueName(fn, dir);
+                        img.pixmap.save(dir.absoluteFilePath(fn));
+
+                        list.clear();
+                        list << fn;
+                        list << "1";
+                        list << "8";
+                        list << "0";
+                        out << "a " << list.join(",") << endl;
+                    }
+                }
+            }
         }
     }
 
@@ -440,7 +496,7 @@ bool CGisItemTrk::readTwoNav(const QString& filename)
             break;
         }
 
-        case 'k':
+        case 'y':
         {
             key.item = line.mid(1).simplified();
             break;
@@ -468,14 +524,22 @@ void CGisItemWpt::saveTwoNav(QTextStream& out, const QDir& dir)
     QString name = getName();
     name = name.replace(" ","_");
 
+    QString description = getDescription();
+    description = removeHtml(description);
+
+    QString filenameCmt;
     QString comment = getComment();
-    comment = removeHtml(comment);
-    if(comment.isEmpty())
+    if(!comment.isEmpty())
     {
-        comment = getDescription();
-        comment = removeHtml(comment);
+        filenameCmt = QString("%1.html").arg(getKey().item);
+        QFile fileCmt(dir.absoluteFilePath(filenameCmt));
+        fileCmt.open(QIODevice::WriteOnly);
+
+        QTextStream stream(&fileCmt);
+        stream << bom << comment;
+
+        fileCmt.close();
     }
-    comment = comment.replace("\n","%0A%0D");
 
     QStringList list;
     list << "W";
@@ -487,7 +551,7 @@ void CGisItemWpt::saveTwoNav(QTextStream& out, const QDir& dir)
     list << QString("%1").arg(wpt.ele == NOINT ? 0 : wpt.ele);
 
     out << list.join(" ") << " ";
-    out << comment << endl;
+    out << description << endl;
 
     list.clear();
     list << iconQlGt2TwoNav(getIconName());
@@ -505,6 +569,11 @@ void CGisItemWpt::saveTwoNav(QTextStream& out, const QDir& dir)
     out << list.join(",");
     out << endl;
 
+    if(!filenameCmt.isEmpty())
+    {
+        out << "a " << ".\\" << filenameCmt << endl;
+    }
+
     foreach(const image_t &img, images)
     {
         QString fn = img.info;
@@ -619,7 +688,7 @@ bool CTwoNavProject::loadWpts(const QString& filename, const QDir& dir)
             if(values.size() > 7)
             {
                 QStringList list = values.mid(8);
-                wpt.comment = list.join(" ");
+                wpt.description = list.join(" ");
             }
 
             break;
@@ -657,6 +726,21 @@ bool CTwoNavProject::loadWpts(const QString& filename, const QDir& dir)
 
             wpt.name = wpt.name.replace("_", " ");
 
+            if(!wpt.key.isEmpty())
+            {
+                QString filenameCmt = QString("%1.html").arg(wpt.key);
+                if(QFile::exists(dir.absoluteFilePath(filenameCmt)))
+                {
+                    QFile fileCmt(dir.absoluteFilePath(filenameCmt));
+                    if(fileCmt.open(QIODevice::ReadOnly))
+                    {
+                        wpt.comment = QTextStream(&fileCmt).readAll();
+                        fileCmt.close();
+                    }
+                }
+            }
+
+
             wpt.valid = true;
             break;
         }
@@ -730,6 +814,7 @@ void CGisItemWpt::readTwoNav(const CTwoNavProject::wpt_t &tnvWpt)
     wpt.time    = tnvWpt.time;
     wpt.name    = tnvWpt.name;
     wpt.cmt     = tnvWpt.comment;
+    wpt.desc    = tnvWpt.description;
     wpt.sym     = tnvWpt.symbol;
     key.item    = tnvWpt.key;
 
@@ -748,6 +833,5 @@ void CGisItemWpt::readTwoNav(const CTwoNavProject::wpt_t &tnvWpt)
         readGcExt(xmlCache);
     }
 
-
     setIcon();
 }
diff --git a/src/gis/trk/CDetailsTrk.cpp b/src/gis/trk/CDetailsTrk.cpp
index ddb0ed6..d5cdd3f 100644
--- a/src/gis/trk/CDetailsTrk.cpp
+++ b/src/gis/trk/CDetailsTrk.cpp
@@ -51,6 +51,11 @@ CDetailsTrk::CDetailsTrk(CGisItemTrk& trk, QWidget *parent)
 
     setupGui();
 
+    plotElevation->setTrack(&trk);
+    plotDistance->setTrack(&trk);
+    plotSpeed->setTrack(&trk);
+
+
     if(trk.isOnDevice())
     {
         toolLock->setDisabled(true);
@@ -121,8 +126,6 @@ CDetailsTrk::CDetailsTrk(CGisItemTrk& trk, QWidget *parent)
 
     connect(listHistory, SIGNAL(sigChanged()), this, SLOT(setupGui()));
 
-    trk.findWaypointsCloseBy();
-
     slotShowPlots();
 }
 
@@ -270,22 +273,19 @@ void CDetailsTrk::setupGui()
     textCmtDesc->moveCursor (QTextCursor::Start);
     textCmtDesc->ensureCursorVisible();
 
-    plotElevation->setTrack(&trk);
-    plotDistance->setTrack(&trk);
-    plotSpeed->setTrack(&trk);
-    plotTrack->setTrack(&trk);
 
+    plotTrack->setTrack(&trk);
     listHistory->setupHistory(trk);
 
     originator = false;
     QApplication::restoreOverrideCursor();
 }
 
-void CDetailsTrk::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
+void CDetailsTrk::setMouseFocus(const CGisItemTrk::trkpt_t * pt)
 {
     if(pt != 0)
     {
-        plotTrack->setMouseMoveFocus(pt->lon, pt->lat);
+        plotTrack->setMouseFocus(pt->lon, pt->lat);
         labelInfoTrkPt->setText(trk.getInfoTrkPt(*pt));
         labelInfoProgress->setText(trk.getInfoProgress(*pt));
     }
@@ -346,8 +346,10 @@ void CDetailsTrk::slotColorChanged(int idx)
 
 void CDetailsTrk::slotChangeReadOnlyMode(bool on)
 {
+    QApplication::setOverrideCursor(Qt::WaitCursor);
     trk.setReadOnlyMode(on);
     setupGui();
+    QApplication::restoreOverrideCursor();
 }
 
 
diff --git a/src/gis/trk/CDetailsTrk.h b/src/gis/trk/CDetailsTrk.h
index a4bcfd0..3cae011 100644
--- a/src/gis/trk/CDetailsTrk.h
+++ b/src/gis/trk/CDetailsTrk.h
@@ -31,7 +31,7 @@ public:
     CDetailsTrk(CGisItemTrk &trk, QWidget * parent);
     virtual ~CDetailsTrk();
 
-    void setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt);
+    void setMouseFocus(const CGisItemTrk::trkpt_t * pt);
     void setMouseClickFocus(const CGisItemTrk::trkpt_t * pt);
 
 public slots:
diff --git a/src/gis/trk/CGisItemTrk.cpp b/src/gis/trk/CGisItemTrk.cpp
index cb107f4..fc1aae5 100644
--- a/src/gis/trk/CGisItemTrk.cpp
+++ b/src/gis/trk/CGisItemTrk.cpp
@@ -38,6 +38,9 @@
 #define MIN_DIST_CLOSE_TO   10
 #define MIN_DIST_FOCUS      40
 
+#define WPT_FOCUS_DIST_IN   (50*50)
+#define WPT_FOCUS_DIST_OUT  (200*200)
+
 const QColor CGisItemTrk::lineColors[TRK_N_COLORS] =
 {
     Qt::black                     // 0
@@ -96,6 +99,16 @@ const QString CGisItemTrk::bulletColors[TRK_N_COLORS] =
     ,QString("")                 // 16
 };
 
+struct trkwpt_t
+{
+    trkwpt_t() : x(0), y(0)
+    {
+    }
+
+    qreal x;
+    qreal y;
+    IGisItem::key_t key;
+};
 
 
 const QPen CGisItemTrk::penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
@@ -103,7 +116,7 @@ const QPen CGisItemTrk::penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap,
 IGisItem::key_t CGisItemTrk::keyUserFocus;
 
 CGisItemTrk::CGisItemTrk(const QString &name, qint32 idx1, qint32 idx2, const trk_t& srctrk, IGisProject * project)
-    : IGisItem(project, eTypeTrk, -1)
+    : IGisItem(project, eTypeTrk, NOIDX)
     , penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
     , drawMode(eDrawNormal)
     , mouseMoveFocus(0)
@@ -237,7 +250,7 @@ CGisItemTrk::CGisItemTrk(const history_t& hist, IGisProject * project)
 }
 
 CGisItemTrk::CGisItemTrk(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeTrk, -1)
+    : IGisItem(project, eTypeTrk, NOIDX)
     , penForeground(Qt::blue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
     , drawMode(eDrawNormal)
     , mouseMoveFocus(0)
@@ -432,6 +445,17 @@ QString CGisItemTrk::getInfoRange()
         pt2 = mouseClickFocus;
     }
 
+    while(pt1->flags & trkpt_t::eHidden)
+    {
+        pt1++;
+    }
+
+    while(pt2->flags & trkpt_t::eHidden)
+    {
+        pt2--;
+    }
+
+
     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));
@@ -548,8 +572,8 @@ IScrOpt * CGisItemTrk::getScreenOptions(const QPoint& origin, IMouse * mouse)
 QPointF CGisItemTrk::getPointCloseBy(const QPoint& screenPos)
 {
     qint32 i    = 0;
-    qint32 idx  = -1;
-    qint32 d   = NOINT;
+    qint32 idx  = NOIDX;
+    qint32 d    = NOINT;
     foreach(const QPointF &point, lineSimple)
     {
         int tmp = (screenPos - point).manhattanLength();
@@ -566,13 +590,26 @@ QPointF CGisItemTrk::getPointCloseBy(const QPoint& screenPos)
         return NOPOINTF;
     }
 
-    const trkpt_t * newPointOfFocus = getVisibleTrkPtByIndex(idx);
-    publishMouseFocus(newPointOfFocus, eFocusMouseClick, 0);
-
     return lineSimple[idx];
 }
 
+void CGisItemTrk::getSelectedVisiblePoints(qint32& idx1, qint32& idx2)
+{
+    if((mouseClickFocus == 0) || (mouseMoveFocus == 0))
+    {
+        idx1 = NOIDX;
+        idx2 = NOIDX;
+        return;
+    }
+
+    idx1 = mouseClickFocus->idxVisible;
+    idx2 = mouseMoveFocus->idxVisible;
 
+    if(idx1 > idx2)
+    {
+        qSwap(idx1,idx2);
+    }
+}
 
 void CGisItemTrk::deriveSecondaryData()
 {
@@ -799,6 +836,11 @@ void CGisItemTrk::deriveSecondaryData()
         totalElapsedSecondsMoving = lastTrkpt->elapsedSecondsMoving;
     }
 
+    foreach(IPlot * plot, registeredPlots)
+    {
+        plot->updateData();
+    }
+
 //    qDebug() << "--------------" << getName() << "------------------";
 //    qDebug() << "totalDistance" << totalDistance;
 //    qDebug() << "totalAscend" << totalAscend;
@@ -807,18 +849,6 @@ void CGisItemTrk::deriveSecondaryData()
 //    qDebug() << "totalElapsedSecondsMoving" << totalElapsedSecondsMoving;
 }
 
-struct trkwpt_t
-{
-    trkwpt_t() : x(0), y(0), idx(-1), lastDistance(20*20)
-    {
-    }
-
-    qreal x;
-    qreal y;
-    IGisItem::key_t key;
-    qint32 idx;
-    qreal lastDistance;
-};
 
 void CGisItemTrk::findWaypointsCloseBy()
 {
@@ -828,13 +858,20 @@ void CGisItemTrk::findWaypointsCloseBy()
         return;
     }
 
-    QVector<pointDP> line;
+    QApplication::setOverrideCursor(Qt::WaitCursor);
 
+    QVector<pointDP> line;
     // combine all segments to a single line
-    foreach (const trkseg_t &seg, trk.segs)
+    const int M = trk.segs.size();
+    for(int m = 0; m < M; m++)
     {
-        foreach(const trkpt_t &pt, seg.pts)
+        trkseg_t& seg = trk.segs[m];
+
+        const int N = seg.pts.size();
+        for(int n = 0; n < N; n++)
         {
+            trkpt_t& pt = seg.pts[n];
+            pt.keyWpt.clear();
             if(pt.flags & CGisItemTrk::trkpt_t::eHidden)
             {
                 continue;
@@ -842,7 +879,7 @@ void CGisItemTrk::findWaypointsCloseBy()
             pointDP dp;
             dp.x    = pt.lon * DEG_TO_RAD;
             dp.y    = pt.lat * DEG_TO_RAD;
-            dp.idx  = pt.idxTotal;
+            dp.idx  = pt.idxVisible;
             line << dp;
         }
     }
@@ -891,19 +928,54 @@ void CGisItemTrk::findWaypointsCloseBy()
 
         pt2.x = pt1.x + qCos(a1 * DEG_TO_RAD) * d;
         pt2.y = pt1.y + qSin(a1 * DEG_TO_RAD) * d;
+    }
+
+    foreach(const trkwpt_t &trkwpt, trkwpts)
+    {
+        qreal minD      = WPT_FOCUS_DIST_IN;
+        qint32 index    = NOIDX;
 
-        // test for waypoint close by
-        for(int n = 0; n < trkwpts.size(); n++)
+        foreach(const pointDP &pt, line)
         {
-            trkwpt_t& trkwpt = trkwpts[n];
-            qreal d = (trkwpt.x - pt2.x)*(trkwpt.x - pt2.x) + (trkwpt.y - pt2.y)*(trkwpt.y - pt2.y);
-            if(d < trkwpt.lastDistance)
+            qreal d = (trkwpt.x - pt.x)*(trkwpt.x - pt.x) + (trkwpt.y - pt.y)*(trkwpt.y - pt.y);
+
+            if(d < WPT_FOCUS_DIST_IN)
+            {
+                if(d < minD)
+                {
+                    index = pt.idx;
+                    minD  = d;
+                }
+            }
+            else if(d > WPT_FOCUS_DIST_OUT)
             {
-                trkwpt.idx = pt2.idx;
-                trkwpt.lastDistance = d;
+                trkpt_t * trkpt = const_cast<trkpt_t*>(getTrkPtByVisibleIndex(index));
+                if(trkpt)
+                {
+                    trkpt->keyWpt = trkwpt.key;
+                }
+
+                index = NOIDX;
+                minD  = WPT_FOCUS_DIST_IN;
             }
         }
+
+        if(index != NOIDX)
+        {
+            trkpt_t * trkpt = const_cast<trkpt_t*>(getTrkPtByVisibleIndex(index));
+            if(trkpt)
+            {
+                trkpt->keyWpt = trkwpt.key;
+            }
+        }
+    }
+
+    if(!dlgDetails.isNull())
+    {
+        dlgDetails->setupGui();
     }
+
+    QApplication::restoreOverrideCursor();
 }
 
 bool CGisItemTrk::isCloseTo(const QPointF& pos)
@@ -923,6 +995,15 @@ void CGisItemTrk::gainUserFocus(bool yes)
     keyUserFocus    = yes ? key : key_t();
 }
 
+void CGisItemTrk::looseUserFocus()
+{
+    if(keyUserFocus == key)
+    {
+        keyUserFocus.clear();
+    }
+}
+
+
 void CGisItemTrk::edit()
 {
     if(dlgDetails.isNull())
@@ -990,7 +1071,7 @@ void CGisItemTrk::reverse()
     }
 
     // start with a 1:1 copy of the first track
-    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, -1, false);
+    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, NOIDX, false);
     trk1->trk.name = name1;
     /*
         clear track data, item key and history. To clear the history is important as
@@ -1049,7 +1130,7 @@ void CGisItemTrk::combine()
     }
 
     // start with a 1:1 copy of the first track
-    CGisItemTrk * trk1 = new CGisItemTrk(*this, projectNew, -1, false);
+    CGisItemTrk * trk1 = new CGisItemTrk(*this, projectNew, NOIDX, false);
     // replace name
     trk1->trk.name = name1;
 
@@ -1090,20 +1171,21 @@ void CGisItemTrk::hideSelectedPoints()
     // read start/stop indices
     qint32 idx1 = mouseClickFocus->idxTotal;
     qint32 idx2 = mouseMoveFocus->idxTotal;
+
     if(idx1 > idx2)
     {
         qSwap(idx1,idx2);
     }
 
     // if first index is the first point adjust index to hide it, too
-    if(idx1 == 0)
+    if(isTrkPtFirstVisible(idx1))
     {
-        idx1 = -1;
+        idx1--;
     }
     // if second index is the last point adjust index to hide it, too
-    if(idx2 == cntTotalPoints - 1)
+    if(isTrkPtLastVisible(idx2))
     {
-        idx2 = cntTotalPoints;
+        idx2++;
     }
 
     // iterate over all segments and delete points between idx1 and idx2
@@ -1141,6 +1223,17 @@ void CGisItemTrk::showSelectedPoints()
         qSwap(idx1,idx2);
     }
 
+    // if first index is the first point adjust index to hide it, too
+    if(isTrkPtFirstVisible(idx1))
+    {
+        idx1--;
+    }
+    // if second index is the last point adjust index to hide it, too
+    if(isTrkPtLastVisible(idx2))
+    {
+        idx2++;
+    }
+
     for(int s = 0; s < trk.segs.size(); s++)
     {
         trkseg_t& seg = trk.segs[s];
@@ -1148,7 +1241,7 @@ void CGisItemTrk::showSelectedPoints()
         {
             trkpt_t& trkpt = seg.pts[i];
 
-            if((idx1 < trkpt.idxTotal) && (trkpt.idxTotal < idx2))
+            if((idx1 <= trkpt.idxTotal) && (trkpt.idxTotal <= idx2))
             {
                 trkpt.flags &= ~trkpt_t::eHidden;
             }
@@ -1318,7 +1411,7 @@ void CGisItemTrk::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
         return;
     }
 
-    if(hasUserFocus() && mouseMoveFocus)
+    if(hasUserFocus() && mouseMoveFocus && (drawMode != eDrawRange))
     {
         // derive anchor
         QPointF anchor(mouseMoveFocus->lon, mouseMoveFocus->lat);
@@ -1449,19 +1542,20 @@ void CGisItemTrk::drawRange(QPainter& p)
 {
     if((mouseClickFocus != 0) && (mouseMoveFocus != 0))
     {
-        int idx1 = mouseClickFocus->idxVisible;
-        int idx2 = mouseMoveFocus->idxVisible;
+        const QPolygonF& line = (drawMode == eDrawRange) ? lineFull : lineSimple;
+        int idx1 = (drawMode == eDrawRange) ? mouseClickFocus->idxTotal : mouseClickFocus->idxVisible;
+        int idx2 = (drawMode == eDrawRange) ? mouseMoveFocus->idxTotal : mouseMoveFocus->idxVisible;
 
         if(idx1 > idx2)
         {
             qSwap(idx1,idx2);
         }
 
-        QPolygonF line = lineSimple.mid(idx1, idx2 - idx1 + 1);
+        QPolygonF seg = line.mid(idx1, idx2 - idx1 + 1);
 
         p.setPen(QPen(Qt::red, 12, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-        p.drawPolyline(line);
-        foreach(const QPointF &pt, line)
+        p.drawPolyline(seg);
+        foreach(const QPointF &pt, seg)
         {
             p.drawPixmap(pt.x() - 3, pt.y() - 3, bullet);
         }
@@ -1622,21 +1716,22 @@ QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e mode)
 {
     const trkpt_t * newPointOfFocus = 0;
     quint32 idx = 0;
+    const QPolygonF& line = (drawMode == eDrawRange) ? lineFull : lineSimple;
 
     if((hasUserFocus() || (drawMode == eDrawRange)) && (pt != NOPOINT))
     {
         /*
             Iterate over the polyline used to draw the track as it contains screen
-            coordinates. The polyline has all visible track points. But there are
-            invisible points, those marked as deleted, too. That is why the index
-            into the polyline cant't be used directly. In a second step we have
-            to iterate over all segments and visible points of the trk_t object
-            until the visible index is reached. This is done by getVisibleTrkPtByIndex().
+            coordinates. The polyline is a linear representation of the segments in the
+            track. That is why the index into the polyline cant't be used directly.
+            In a second step we have to iterate over all segments and points of the trk_t object
+            until the index is reached. This is done by either getTrkPtByVisibleIndex(), or
+            getTrkPtByTotalIndex(). Depending on the current mode.
          */
 
         quint32 i = 0;
         qint32 d  = NOINT;
-        foreach(const QPointF &point, lineSimple)
+        foreach(const QPointF &point, line)
         {
             int tmp = (pt - point).manhattanLength();
             if(tmp < d)
@@ -1649,12 +1744,12 @@ QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e mode)
 
         if(d < MIN_DIST_FOCUS)
         {
-            newPointOfFocus = getVisibleTrkPtByIndex(idx);
+            newPointOfFocus = (drawMode == eDrawRange) ? getTrkPtByTotalIndex(idx) : getTrkPtByVisibleIndex(idx);
         }
     }
     publishMouseFocus(newPointOfFocus, mode, 0);
 
-    return newPointOfFocus ? lineSimple[idx] : NOPOINTF;
+    return newPointOfFocus ? line[idx] : NOPOINTF;
 }
 
 
@@ -1676,27 +1771,72 @@ void CGisItemTrk::setMouseFocusByIndex(qint32 idx, focusmode_e mode)
     }
 }
 
-const CGisItemTrk::trkpt_t * CGisItemTrk::getVisibleTrkPtByIndex(quint32 idx)
+const CGisItemTrk::trkpt_t * CGisItemTrk::getTrkPtByVisibleIndex(qint32 idx)
 {
-    quint32 i = 0;
     foreach (const trkseg_t &seg, trk.segs)
     {
         foreach(const trkpt_t &pt, seg.pts)
         {
-            if(pt.flags & trkpt_t::eHidden)
+            if(pt.idxVisible == idx)
             {
-                continue;
+                return &pt;
             }
-            if(i == idx)
+        }
+    }
+    return 0;
+}
+
+const CGisItemTrk::trkpt_t * CGisItemTrk::getTrkPtByTotalIndex(qint32 idx)
+{
+    foreach (const trkseg_t &seg, trk.segs)
+    {
+        foreach(const trkpt_t &pt, seg.pts)
+        {
+            if(pt.idxTotal == idx)
             {
                 return &pt;
             }
-            i++;
         }
     }
     return 0;
 }
 
+bool CGisItemTrk::isTrkPtLastVisible(qint32 idxTotal)
+{
+    foreach (const trkseg_t &seg, trk.segs)
+    {
+        foreach(const trkpt_t &pt1, seg.pts)
+        {
+            if((pt1.idxTotal > idxTotal) && !(pt1.flags & trkpt_t::eHidden))
+            {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+bool CGisItemTrk::isTrkPtFirstVisible(qint32 idxTotal)
+{
+    foreach (const trkseg_t &seg, trk.segs)
+    {
+        foreach(const trkpt_t &pt1, seg.pts)
+        {
+            if((pt1.idxTotal < idxTotal))
+            {
+                if(!(pt1.flags & trkpt_t::eHidden))
+                {
+                    return false;
+                }
+            }
+            else
+            {
+                return true;
+            }
+        }
+    }
+    return true;
+}
 
 
 void CGisItemTrk::publishMouseFocus(const trkpt_t * pt, focusmode_e mode,  IPlot * initiator)
@@ -1709,15 +1849,12 @@ void CGisItemTrk::publishMouseFocus(const trkpt_t * pt, focusmode_e mode,  IPlot
             mouseMoveFocus = pt;
             foreach(IPlot * plot, registeredPlots)
             {
-                if(plot != initiator)
-                {
-                    plot->setMouseMoveFocus(mouseMoveFocus);
-                }
+                plot->setMouseFocus(mouseClickFocus, mouseMoveFocus);
             }
 
             if(!dlgDetails.isNull())
             {
-                dlgDetails->setMouseMoveFocus(mouseMoveFocus);
+                dlgDetails->setMouseFocus(mouseMoveFocus);
             }
         }
         break;
@@ -1725,7 +1862,7 @@ void CGisItemTrk::publishMouseFocus(const trkpt_t * pt, focusmode_e mode,  IPlot
     case eFocusMouseClick:
         if(pt != mouseClickFocus)
         {
-            mouseClickFocus = pt;
+            mouseClickFocus = mouseClickFocus == 0 ? pt : 0;
             if(!dlgDetails.isNull())
             {
                 dlgDetails->setMouseClickFocus(mouseClickFocus);
diff --git a/src/gis/trk/CGisItemTrk.h b/src/gis/trk/CGisItemTrk.h
index 006f69e..b829702 100644
--- a/src/gis/trk/CGisItemTrk.h
+++ b/src/gis/trk/CGisItemTrk.h
@@ -177,6 +177,16 @@ public:
         return timeStart;
     }
 
+    /**
+       @brief Get the indeces of visible points for a selected range
+
+       If no range is selected both indeces will be NOIDX.
+
+       @param idx1 a reference to receive the first index
+       @param idx2 a reference to receive the second index
+     */
+    void getSelectedVisiblePoints(qint32& idx1, qint32& idx2);
+
     void setName(const QString& str);
     void setColor(int idx);
     void setDrawMode(drawmode_e mode)
@@ -206,6 +216,13 @@ public:
        @param yes   set true to gain focus.
      */
     void gainUserFocus(bool yes);
+    /**
+       @brief Make sure the track has lost focus.
+
+       If the track has the focus, keyUserFocus will be reset. In all other cases nothing will be done.
+
+     */
+    void looseUserFocus();
 
     /**
        @brief Make sure a CDetailsTrk widget is registered with the main tab widget
@@ -422,13 +439,36 @@ private:
        @brief Try to get access Nth visible point matching the idx
 
        This will iterate over all segments and count the visible points. If the
-       count matches idx a pointer to the track point is passed
+       count matches idx a pointer to the track point is returned.
 
        @param idx The index into all visible points
        @return A null pointer of no point is found.
      */
-    const trkpt_t *getVisibleTrkPtByIndex(quint32 idx);
+    const trkpt_t *getTrkPtByVisibleIndex(qint32 idx);
+    /**
+       @brief Try to get access Nth point
 
+       This will iterate over all segments. If the index matches
+       a pointer to the track point is returned.
+
+       @param idx The index into all points
+       @return A null pointer of no point is found.
+     */
+    const trkpt_t *getTrkPtByTotalIndex(qint32 idx);
+
+    /**
+       @brief Check if the track point at index it the last one visible
+       @param idxTotal  The point's index
+       @return True if it is the last one visible
+     */
+    bool isTrkPtLastVisible(qint32 idxTotal);
+
+    /**
+       @brief Check if the track point at index it the first one visible
+       @param idxTotal  The point's index
+       @return True if it is the first one visible
+     */
+    bool isTrkPtFirstVisible(qint32 idxTotal);
     /**
        @brief Tell the point of focus to all plots and the detail dialog
 
@@ -482,6 +522,7 @@ public:
             slope1          = NOFLOAT;
             slope2          = NOFLOAT;
             speed           = NOFLOAT;
+            idxVisible      = NOIDX;
         }
 
         enum flag_e
@@ -513,6 +554,8 @@ public:
         qreal elapsedSeconds;
         /// the seconds since the start of the track with moving speed
         qreal elapsedSecondsMoving;
+        /// the key of an attached waypoint
+        key_t keyWpt;
     };
 
     struct trkseg_t
diff --git a/src/gis/trk/CScrOptTrk.cpp b/src/gis/trk/CScrOptTrk.cpp
index 09652c1..e0afa11 100644
--- a/src/gis/trk/CScrOptTrk.cpp
+++ b/src/gis/trk/CScrOptTrk.cpp
@@ -56,6 +56,10 @@ CScrOptTrk::CScrOptTrk(CGisItemTrk * trk, const QPoint& point, IMouse *parent)
     connect(toolReverse, SIGNAL(clicked()), this, SLOT(slotReverse()));
     connect(toolCombine, SIGNAL(clicked()), this, SLOT(slotCombine()));
     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);
 }
 
 CScrOptTrk::~CScrOptTrk()
diff --git a/src/gis/wpt/CDetailsGeoCache.cpp b/src/gis/wpt/CDetailsGeoCache.cpp
index eaddc7d..cfeff93 100644
--- a/src/gis/wpt/CDetailsGeoCache.cpp
+++ b/src/gis/wpt/CDetailsGeoCache.cpp
@@ -236,7 +236,7 @@ void CDetailsGeoCache::slotRequestFinished(QNetworkReply * reply)
         else if(watchOut)
         {
             int pos = 0;
-            while ((pos = re2.indexIn(line, pos)) != -1)
+            while ((pos = re2.indexIn(line, pos)) != NOIDX)
             {
                 QString url  = re2.cap(1);
                 QString info = re2.cap(2);
diff --git a/src/gis/wpt/CGisItemWpt.cpp b/src/gis/wpt/CGisItemWpt.cpp
index e32aaff..ca2cb0f 100644
--- a/src/gis/wpt/CGisItemWpt.cpp
+++ b/src/gis/wpt/CGisItemWpt.cpp
@@ -43,7 +43,7 @@ QString CGisItemWpt::lastIcon;
 
 /// used to add a new waypoint
 CGisItemWpt::CGisItemWpt(const QPointF& pos, const QString& name, const QString &icon, IGisProject *project)
-    : IGisItem(project, eTypeWpt, -1)
+    : IGisItem(project, eTypeWpt, NOIDX)
     , proximity(NOFLOAT)
     , posScreen(NOPOINTF)
 {
@@ -65,7 +65,7 @@ CGisItemWpt::CGisItemWpt(const QPointF& pos, const QString& name, const QString
 
 /// used to move a copy of waypoint
 CGisItemWpt::CGisItemWpt(const QPointF& pos, const CGisItemWpt& parentWpt, IGisProject *project)
-    : IGisItem(project, eTypeWpt, -1)
+    : IGisItem(project, eTypeWpt, NOIDX)
     , proximity(NOFLOAT)
     , posScreen(NOPOINTF)
 {
@@ -133,7 +133,7 @@ CGisItemWpt::CGisItemWpt(const history_t& hist, IGisProject * project)
 }
 
 CGisItemWpt::CGisItemWpt(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeWpt, -1)
+    : IGisItem(project, eTypeWpt, NOIDX)
     , proximity(NOFLOAT)
     , posScreen(NOPOINTF)
 {
@@ -142,7 +142,7 @@ CGisItemWpt::CGisItemWpt(quint64 id, QSqlDatabase& db, IGisProject * project)
 }
 
 CGisItemWpt::CGisItemWpt(const CTwoNavProject::wpt_t &tnvWpt, IGisProject * project)
-    : IGisItem(project, eTypeWpt, -1)
+    : IGisItem(project, eTypeWpt, NOIDX)
     , proximity(NOFLOAT)
     , posScreen(NOPOINTF)
 {
diff --git a/src/grid/CGrid.cpp b/src/grid/CGrid.cpp
index 165dfa1..2529e21 100644
--- a/src/grid/CGrid.cpp
+++ b/src/grid/CGrid.cpp
@@ -62,7 +62,7 @@ void CGrid::convertPos2Str(const QPointF& pos, QString& info)
     }
     else
     {
-        info += tr("[Grid: N %1m, E %2m] ").arg(pt.x(),0,'f',0).arg(pt.y(),0,'f',0);
+        info += tr("[Grid: N %1m, E %2m] ").arg(pt.y(),0,'f',0).arg(pt.x(),0,'f',0);
     }
 }
 
diff --git a/src/helpers/CPhotoAlbum.cpp b/src/helpers/CPhotoAlbum.cpp
index a689c05..323240e 100644
--- a/src/helpers/CPhotoAlbum.cpp
+++ b/src/helpers/CPhotoAlbum.cpp
@@ -18,6 +18,7 @@
 
 #include "helpers/CPhotoAlbum.h"
 #include "helpers/CPhotoViewer.h"
+#include "helpers/CSettings.h"
 
 #include <QtWidgets>
 
@@ -66,7 +67,9 @@ void CPhotoAlbum::reload(const QList<CGisItemWpt::image_t>& imgs)
 
 void CPhotoAlbum::slotAddImage()
 {
-    QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Select images..."), "./");
+    SETTINGS;
+    QString path = cfg.value("Paths/lastWptImagePath", QDir::homePath()).toString();
+    QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Select images..."), path);
     if(filenames.isEmpty())
     {
         return;
@@ -95,6 +98,10 @@ void CPhotoAlbum::slotAddImage()
         images << image;
     }
 
+    QFileInfo fi(filenames.first());
+    path = fi.absolutePath();
+    cfg.setValue("Paths/lastWptImagePath", path);
+
     emit sigChanged(images);
 }
 
diff --git a/src/helpers/CWptIconDialog.cpp b/src/helpers/CWptIconDialog.cpp
index 76df6a3..039d3f9 100644
--- a/src/helpers/CWptIconDialog.cpp
+++ b/src/helpers/CWptIconDialog.cpp
@@ -105,6 +105,7 @@ void CWptIconDialog::setupList(QObject * obj)
     }
 
     connect(listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(slotItemClicked(QListWidgetItem*)));
+    connect(listWidget, SIGNAL(itemActivated(QListWidgetItem*)), this, SLOT(slotItemClicked(QListWidgetItem*)));
 }
 
 CWptIconDialog::~CWptIconDialog()
diff --git a/src/icons/32x32/FolderDEM.png b/src/icons/32x32/FolderDEM.png
index 48ed755..9bba91b 100644
Binary files a/src/icons/32x32/FolderDEM.png and b/src/icons/32x32/FolderDEM.png differ
diff --git a/src/icons/32x32/FolderMap.png b/src/icons/32x32/FolderMap.png
index e5a2b9b..b215903 100644
Binary files a/src/icons/32x32/FolderMap.png and b/src/icons/32x32/FolderMap.png differ
diff --git a/src/icons/32x32/ProfileToWindow.png b/src/icons/32x32/ProfileToWindow.png
new file mode 100644
index 0000000..2a6bed5
Binary files /dev/null and b/src/icons/32x32/ProfileToWindow.png differ
diff --git a/src/icons/48x48/FolderDEM.png b/src/icons/48x48/FolderDEM.png
index 21224f3..9bfbc93 100644
Binary files a/src/icons/48x48/FolderDEM.png and b/src/icons/48x48/FolderDEM.png differ
diff --git a/src/icons/48x48/FolderMap.png b/src/icons/48x48/FolderMap.png
index 71a4939..c5043a1 100644
Binary files a/src/icons/48x48/FolderMap.png and b/src/icons/48x48/FolderMap.png differ
diff --git a/src/icons/48x48/ProfileToWindow.png b/src/icons/48x48/ProfileToWindow.png
new file mode 100644
index 0000000..62e53d0
Binary files /dev/null and b/src/icons/48x48/ProfileToWindow.png differ
diff --git a/src/icons/FolderDEM.svg b/src/icons/FolderDEM.svg
index afcd4fd..77cb533 100644
--- a/src/icons/FolderDEM.svg
+++ b/src/icons/FolderDEM.svg
@@ -13,7 +13,7 @@
    height="64px"
    id="svg2985"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.48.5 r10040"
    sodipodi:docname="FolderDEM.svg">
   <defs
      id="defs2987" />
@@ -32,7 +32,7 @@
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="996"
+     inkscape:window-height="1012"
      inkscape:window-x="-2"
      inkscape:window-y="-3"
      inkscape:window-maximized="1"
@@ -71,25 +71,13 @@
        y="10.600393" />
     <path
        style="fill:#009cff;fill-opacity:1;stroke:none"
-       d="m 1.8975662,49.925253 0,-8.665498 4.8729651,-4.332749 4.8729667,4.332749 9.745933,-12.998247 9.745932,8.665498 4.872965,-4.332749 4.872967,8.665498 0,8.665498 z"
+       d="m 1.8975662,49.925253 0,-11.170101 4.8729651,-5.585051 4.8729667,5.585051 L 21.389431,22 l 9.745932,11.170101 4.872965,-5.58505 4.872967,11.170101 0,11.170101 z"
        id="path3799"
        inkscape:connector-curvature="0" />
     <path
        style="fill:#000080;stroke:none"
-       d="m 1.6267696,50.444261 0,-5.302204 4.977424,0 4.9774264,-5.302203 4.977426,5.302203 9.95485,-10.604407 9.954849,5.302204 4.977424,5.302203 0,5.302204 z"
+       d="m 1.6267696,50.444261 0,-6.481421 4.977424,0 L 11.58162,37.481421 16.559046,43.96284 26.513896,31 l 9.954849,6.481421 4.977424,6.481419 0,6.481421 z"
        id="path3815"
        inkscape:connector-curvature="0" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
-       x="4.5142612"
-       y="23.128567"
-       id="text3009"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3011"
-         x="4.5142612"
-         y="23.128567"
-         style="font-size:16px">c://</tspan></text>
   </g>
 </svg>
diff --git a/src/icons/FolderMap.svg b/src/icons/FolderMap.svg
index bfd3254..ce0f1f9 100644
--- a/src/icons/FolderMap.svg
+++ b/src/icons/FolderMap.svg
@@ -13,7 +13,7 @@
    height="64px"
    id="svg3513"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
+   inkscape:version="0.48.5 r10040"
    sodipodi:docname="FolderMap.svg">
   <defs
      id="defs3515" />
@@ -25,14 +25,14 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="15.556349"
-     inkscape:cx="19.471582"
+     inkscape:cx="10.504182"
      inkscape:cy="31.074351"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="996"
+     inkscape:window-height="1012"
      inkscape:window-x="-2"
      inkscape:window-y="-3"
      inkscape:window-maximized="1">
@@ -56,36 +56,21 @@
      id="layer1"
      inkscape:label="Layer 1"
      inkscape:groupmode="layer">
-    <rect
-       style="fill:#ffffff;stroke:#000080"
-       id="rect3797"
-       width="40"
-       height="40"
-       x="10.155192"
-       y="13.161652" />
-    <path
-       style="fill:#000080;fill-opacity:1"
-       d="m 16.31268,51.395951 c -0.446621,-0.114609 -0.934711,-0.247135 -1.08462,-0.294522 -0.270279,-0.08541 -0.271327,-0.08668 -0.124935,-0.149144 0.0812,-0.03466 0.212425,-0.06376 0.291579,-0.06474 0.07915,-7.07e-4 0.388358,-0.05264 0.687117,-0.114753 0.91623,-0.190674 1.385669,-0.22527 2.448363,-0.180425 0.532497,0.02248 1.010358,0.05414 1.061898,0.07053 0.05144,0.01632 0.134742,0.0095 0.184909,-0.01489 0.07807,-0.03827 0.07409,-0.05918 -0.02663,-0.144814 l -0.117827,-0.100195 0.463 [...]
-       id="path3319-60"
-       inkscape:connector-curvature="0" />
-    <rect
-       style="fill:none;stroke:none"
-       id="rect3856"
-       width="40"
-       height="40"
-       x="9.545454"
-       y="17" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
-       x="13.518527"
-       y="25.786196"
-       id="text3009"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3011"
-         x="13.518527"
-         y="25.786196"
-         style="font-size:16px">c://</tspan></text>
+    <g
+       transform="translate(-5.65583,1.311327)"
+       id="g2987">
+      <rect
+         y="12.314795"
+         x="16.525911"
+         height="33.188591"
+         width="33.129997"
+         id="rect3167"
+         style="fill:#ffffff;stroke:#000080;stroke-width:1.87165701;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3319"
+         d="m 20.6988,41.088148 c -0.37071,-0.152412 -0.77584,-0.328663 -0.90027,-0.391681 -0.22434,-0.113598 -0.22521,-0.115284 -0.1037,-0.198356 0.0674,-0.04608 0.17632,-0.08477 0.24202,-0.08608 0.0657,-9.37e-4 0.32235,-0.06997 0.57033,-0.15261 0.7605,-0.25358 1.15015,-0.299589 2.03222,-0.239952 0.44199,0.02988 0.83863,0.07203 0.88141,0.0938 0.0427,0.02173 0.11184,0.01264 0.15348,-0.01976 0.0648,-0.05086 0.0615,-0.07868 -0.0221,-0.192586 l -0.0978,-0.133248 0.38503,0.04693 c 0.66965,0. [...]
+         style="fill:#000080" />
+    </g>
   </g>
 </svg>
diff --git a/src/icons/ProfileToWindow.svg b/src/icons/ProfileToWindow.svg
new file mode 100644
index 0000000..123cd5b
--- /dev/null
+++ b/src/icons/ProfileToWindow.svg
@@ -0,0 +1,118 @@
+<?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="64px"
+   height="64px"
+   id="svg2985"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="ProfileToWindow.svg">
+  <defs
+     id="defs2987" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.556349"
+     inkscape:cx="1.1138673"
+     inkscape:cy="30.654351"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1012"
+     inkscape:window-x="-2"
+     inkscape:window-y="-3"
+     inkscape:window-maximized="1"
+     gridtolerance="10">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3019"
+       units="mm"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="false" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata2990">
+    <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 />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#ffffff;stroke:none"
+       id="rect3797"
+       width="40"
+       height="40"
+       x="1"
+       y="10.600393" />
+    <path
+       style="fill:#000080;stroke:none"
+       d="m 0.9999999,50.351934 0,-7.34353 4.9999992,0 L 11,35.664876 l 5.000002,7.343528 9.999999,-14.687058 10,7.34353 L 41,43.008404 l 0,7.34353 z"
+       id="path3815"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:type="arc"
+       style="fill:none;stroke:#000080;stroke-width:1.55000004000000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path3778"
+       sodipodi:cx="28.5"
+       sodipodi:cy="23.5"
+       sodipodi:rx="2.5"
+       sodipodi:ry="2.5"
+       d="m 26.000002,23.50341 a 2.5,2.5 0 1 1 2.3e-5,0.0077"
+       sodipodi:start="3.1402285"
+       sodipodi:end="9.4203312"
+       sodipodi:open="true"
+       transform="matrix(1.2903225,0,0,1.2903226,-28.248385,-9.935484)" />
+    <g
+       id="g3010"
+       style="stroke-width:2.47346592;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none"
+       transform="matrix(0.8,0,0,0.817256,2.3722955,5.6764896)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3780"
+         d="m 42.909632,13.999999 -8,8"
+         style="fill:#000080;stroke:#000080;stroke-width:2.47346592;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3782"
+         d="m 34.909632,13.999999 8,8"
+         style="fill:#000080;stroke:#000080;stroke-width:2.47346592;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <rect
+       style="fill:none;stroke:#000080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect2991"
+       width="40"
+       height="40"
+       x="1"
+       y="12" />
+    <path
+       style="fill:#000080;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 16.025807,24 10,0"
+       id="path2990"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/locale/qmapshack_cs.ts b/src/locale/qmapshack_cs.ts
index ce46292..0412e5c 100644
--- a/src/locale/qmapshack_cs.ts
+++ b/src/locale/qmapshack_cs.ts
@@ -8,7 +8,7 @@
         <translation type="obsolete">Pohled %1</translation>
     </message>
     <message>
-        <location filename="../canvas/CCanvas.cpp" line="61"/>
+        <location filename="../canvas/CCanvas.cpp" line="62"/>
         <source>View %1</source>
         <translation>Pohled %1</translation>
     </message>
@@ -134,74 +134,91 @@
 <context>
     <name>CDetailsPrj</name>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="165"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="380"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="194"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="556"/>
         <source>none</source>
         <translation>žádné</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Build diary...</source>
         <translation>Sestavit deník...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Abort</source>
         <translation>Zrušit</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="234"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="311"/>
         <source><h2>Waypoints</h2></source>
         <translation><h2>Cestovní body</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="241"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="272"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="337"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="274"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="318"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="349"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="457"/>
         <source>Info</source>
         <translation>Informace</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="242"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="273"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="338"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="275"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="319"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="350"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="458"/>
         <source>Comment</source>
         <translation>Poznámka</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="265"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="342"/>
         <source><h2>Tracks</h2></source>
         <translation><h2>Stopy</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="330"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
         <source><h2>Areas</h2></source>
         <translation><h2>Oblasti</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="480"/>
+        <source>distance: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="482"/>
+        <source>ascent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="484"/>
+        <source>descend: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Edit name...</source>
         <translation>Upravit název...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Enter new project name.</source>
         <translation>Zadejte název projektu.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Edit keywords...</source>
         <translation>Upravit klíčová slova...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Enter keywords.</source>
         <translation>Zadejte klíčová slova.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="509"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="685"/>
         <source>Print Diary</source>
         <translation>Tisk deníku</translation>
     </message>
@@ -209,42 +226,42 @@
 <context>
     <name>CDetailsTrk</name>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="62"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="67"/>
         <source>Reduce visible track points</source>
         <translation>Omezit počet viditelných bodů stopy</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="75"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="80"/>
         <source>Change elevation of track points</source>
         <translation>Změnit informace o výškách bodů stopy</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="88"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="93"/>
         <source>Change timestamp of track points</source>
         <translation>Změnit časová razítka bodů stopy</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="101"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="106"/>
         <source>Cut track into pieces</source>
         <translation>Rozkrájet stopu na kusy</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="215"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="224"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
         <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="233"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="252"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="254"/>
+        <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"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Edit name...</source>
         <translation type="unfinished">Upravit název...</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Enter new track name.</source>
         <translation type="unfinished">Zadat název nové stopy.</translation>
     </message>
@@ -384,114 +401,119 @@
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Save As...</source>
         <translation>Uložit jako...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Save</source>
         <translation>Uložit</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
         <source>Edit..</source>
         <translation>Upravit...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Update Project on Devices</source>
-        <translation>Aktualizovat projekt na zařízeních</translation>
+        <translation type="vanished">Aktualizovat projekt na zařízeních</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Close</source>
         <translation>Zavřít</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="101"/>
+        <location filename="../gis/CGisListWks.cpp" line="102"/>
         <source>Update Project on Device</source>
         <translation>Aktualizovat projekt na zařízení</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="113"/>
+        <location filename="../gis/CGisListWks.cpp" line="114"/>
         <source>Edit...</source>
         <translation>Upravit...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
         <source>Copy to...</source>
         <translation>Kopírovat do...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="126"/>
+        <location filename="../gis/CGisListWks.cpp" line="127"/>
         <source>Move Waypoint</source>
         <translation>Přesunout cestovní bod</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
         <source>Proj. Waypoint...</source>
         <translation>Promítnutí cestovního bodu...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1214"/>
-        <location filename="../gis/CGisListWks.cpp" line="1252"/>
+        <location filename="../gis/CGisListWks.cpp" line="586"/>
+        <location filename="../gis/CGisListWks.cpp" line="1237"/>
+        <location filename="../gis/CGisListWks.cpp" line="1275"/>
         <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>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
         <source>Track Profile</source>
         <translation>Profil stopy</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="117"/>
+        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <source>Send to Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="118"/>
         <source>Select Range</source>
         <translation>Vybrat rozsah</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
         <source>Edit Track Points</source>
         <translation>Upravit body stopy</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <location filename="../gis/CGisListWks.cpp" line="120"/>
         <source>Reverse Track</source>
         <translation>Obrátit stopu</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="120"/>
+        <location filename="../gis/CGisListWks.cpp" line="121"/>
         <source>Combine Tracks</source>
         <translation>Spojit stopy</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="139"/>
+        <location filename="../gis/CGisListWks.cpp" line="140"/>
         <source>Edit Area Points</source>
         <translation>Upravit body oblasti</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="102"/>
-        <location filename="../gis/CGisListWks.cpp" line="121"/>
+        <location filename="../gis/CGisListWks.cpp" line="103"/>
+        <location filename="../gis/CGisListWks.cpp" line="122"/>
         <source>Delete</source>
         <translation>Smazat</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="672"/>
+        <location filename="../gis/CGisListWks.cpp" line="686"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Ukládá se pohled. Počkejte, prosím.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="713"/>
+        <location filename="../gis/CGisListWks.cpp" line="727"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Nahrává se pohled. Počkejte, prosím.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>Close all projects...</source>
         <translation>Zavřít všechny projekty...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>This will remove all projects from the workspace.</source>
         <translation>Tímto budou všechny projekty odstraněny z pohledu.</translation>
     </message>
@@ -555,22 +577,22 @@
 <context>
     <name>CMainWindow</name>
     <message>
-        <location filename="../CMainWindow.cpp" line="466"/>
+        <location filename="../CMainWindow.cpp" line="476"/>
         <source>Ele: %1%2</source>
         <translation>Výška: %1%2</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="592"/>
+        <location filename="../CMainWindow.cpp" line="602"/>
         <source>Load GIS Data...</source>
         <translation>Nahrát data GIS...</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="626"/>
+        <location filename="../CMainWindow.cpp" line="636"/>
         <source>Select output file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="652"/>
+        <location filename="../CMainWindow.cpp" line="662"/>
         <source>Select file to load</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1182,26 +1204,26 @@
         <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="2467"/>
         <location filename="../map/CMapIMG.cpp" line="2475"/>
-        <location filename="../map/CMapIMG.cpp" line="2479"/>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <location filename="../map/CMapIMG.cpp" line="2530"/>
+        <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="2542"/>
-        <location filename="../map/CMapIMG.cpp" line="2547"/>
+        <location filename="../map/CMapIMG.cpp" line="2546"/>
+        <location filename="../map/CMapIMG.cpp" line="2550"/>
+        <location filename="../map/CMapIMG.cpp" line="2555"/>
         <source>Point of Interest</source>
         <translation>Podivuhodnost</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2674"/>
+        <location filename="../map/CMapIMG.cpp" line="2682"/>
         <source>Unknown</source>
         <translation>Neznámý</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2720"/>
         <location filename="../map/CMapIMG.cpp" line="2728"/>
-        <location filename="../map/CMapIMG.cpp" line="2735"/>
+        <location filename="../map/CMapIMG.cpp" line="2736"/>
+        <location filename="../map/CMapIMG.cpp" line="2743"/>
         <source>Area</source>
         <translation>Oblast</translation>
     </message>
@@ -1453,7 +1475,7 @@ Neznámá stavba.</translation>
 <context>
     <name>CMouseEditTrk</name>
     <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="47"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="44"/>
         <source><b>Edit Track Points</b><br/>Select a track point for more options.<br/></source>
         <translation><b>Upravit body stopy</b><br/>Vyberte bod stopy pro více voleb.<br/></translation>
     </message>
@@ -1484,7 +1506,7 @@ Neznámá stavba.</translation>
 <context>
     <name>CMouseRangeTrk</name>
     <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="48"/>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="44"/>
         <source><b>Select Range</b><br/>Select first track point. And then a second one.<br/></source>
         <translation><b>Vybrat rozsah</b><br/>Vyberte první bod stopy. A potom druhý.<br/></translation>
     </message>
@@ -1492,7 +1514,7 @@ Neznámá stavba.</translation>
 <context>
     <name>CPhotoAlbum</name>
     <message>
-        <location filename="../helpers/CPhotoAlbum.cpp" line="69"/>
+        <location filename="../helpers/CPhotoAlbum.cpp" line="72"/>
         <source>Select images...</source>
         <translation>Vybrat obrázky...</translation>
     </message>
@@ -1522,17 +1544,17 @@ Neznámá stavba.</translation>
 <context>
     <name>CPlotProfile</name>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="63"/>
+        <location filename="../plot/CPlotProfile.cpp" line="65"/>
         <source>distance [%1]</source>
         <translation>Vzdálenost [%1]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="67"/>
+        <location filename="../plot/CPlotProfile.cpp" line="69"/>
         <source>time [h]</source>
         <translation>Čas [h]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="69"/>
+        <location filename="../plot/CPlotProfile.cpp" line="71"/>
         <source>alt. [%1]</source>
         <translation>Výška [%1]</translation>
     </message>
@@ -1852,12 +1874,57 @@ není platným vymezením soustavy souřadnic
         <translation>Proj4</translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="138"/>
+        <location filename="../IAbout.ui" line="140"/>
+        <source>Rainer Unseld </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="147"/>
+        <source>French</source>
+        <translation type="unfinished">Francouzský</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="154"/>
+        <source>Czech</source>
+        <translation type="unfinished">Český</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="161"/>
+        <source>Pavel Fric</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="168"/>
+        <source>German</source>
+        <translation type="unfinished">Německý</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="175"/>
+        <source>Translation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="182"/>
+        <source>Josef Latt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Spanish</source>
+        <translation type="unfinished">Španělský</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="196"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
         <source>This software is licensed under GPL3 or any later version</source>
         <translation>Tento program je licencován pod GPL3 nebo kteroukoli pozdější verzí</translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="145"/>
+        <location filename="../IAbout.ui" line="219"/>
         <source>© 2014 Oliver Eichler (oliver.eichler at gmx.de)</source>
         <translation>© 2014 Oliver Eichler (oliver.eichler at gmx.de)</translation>
     </message>
@@ -2133,28 +2200,34 @@ není platným vymezením soustavy souřadnic
         <translation>-</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="83"/>
         <source>Sort By Time</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="86"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
         <source>Keep Order of Project</source>
         <translation>Zachovat pořadí projektu</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="93"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="99"/>
+        <source>Sort Along Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="127"/>
         <source>Print diary</source>
         <translation>Tisk deníku</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="96"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="116"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="106"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="150"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="147"/>
         <source>Rebuild diary.</source>
         <translation>Sestavit deník znovu.</translation>
     </message>
@@ -2775,37 +2848,37 @@ není platným vymezením soustavy souřadnic
         <translation>Pohled</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="92"/>
+        <location filename="../IMainWindow.ui" line="93"/>
         <source>Window</source>
         <translation>Okno</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="97"/>
+        <location filename="../IMainWindow.ui" line="98"/>
         <source>?</source>
         <translation>Nápověda</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="104"/>
+        <location filename="../IMainWindow.ui" line="105"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="114"/>
+        <location filename="../IMainWindow.ui" line="115"/>
         <source>Tool</source>
         <translation>Nástroj</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="132"/>
+        <location filename="../IMainWindow.ui" line="133"/>
         <source>Maps</source>
         <translation>Mapy</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="169"/>
+        <location filename="../IMainWindow.ui" line="170"/>
         <source>Dig. Elev. Model (DEM)</source>
         <translation>Digitální výškový model (DEM)</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="202"/>
+        <location filename="../IMainWindow.ui" line="203"/>
         <source>Data</source>
         <translation>Data</translation>
     </message>
@@ -2814,78 +2887,78 @@ není platným vymezením soustavy souřadnic
         <translation type="obsolete">Přidat pohled na mapu</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="221"/>
+        <location filename="../IMainWindow.ui" line="222"/>
         <source>Ctrl+T</source>
         <translation>Ctrl+T</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="233"/>
+        <location filename="../IMainWindow.ui" line="234"/>
         <source>Show Scale</source>
         <translation>Ukázat měřítko</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="242"/>
+        <location filename="../IMainWindow.ui" line="243"/>
         <source>Setup Map Font</source>
         <translation>Nastavit písmo mapy</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="254"/>
+        <location filename="../IMainWindow.ui" line="255"/>
         <source>Show Grid</source>
         <translation>Ukázat mřížku</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="257"/>
+        <location filename="../IMainWindow.ui" line="258"/>
         <source>Ctrl+G</source>
         <translation>Ctrl+G</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="266"/>
+        <location filename="../IMainWindow.ui" line="267"/>
         <source>Setup Grid</source>
         <translation>Nastavit mřížku</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="269"/>
+        <location filename="../IMainWindow.ui" line="270"/>
         <source>Ctrl+Alt+G</source>
         <translation>Ctrl+Alt+G</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="281"/>
+        <location filename="../IMainWindow.ui" line="282"/>
         <source>Flip Mouse Wheel</source>
         <translation>Obrátit kolečko myši</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="290"/>
-        <location filename="../IMainWindow.ui" line="293"/>
+        <location filename="../IMainWindow.ui" line="291"/>
+        <location filename="../IMainWindow.ui" line="294"/>
         <source>Setup Map Paths</source>
         <translation>Nastavit cesty k mapám</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="305"/>
+        <location filename="../IMainWindow.ui" line="306"/>
         <source>POI Text</source>
         <translation>Text POI</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="317"/>
+        <location filename="../IMainWindow.ui" line="318"/>
         <source>Night / Day</source>
         <translation>Noc/Den</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="329"/>
+        <location filename="../IMainWindow.ui" line="330"/>
         <source>Map Tool Tip</source>
         <translation>Rada k nástroji pro mapu</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="338"/>
+        <location filename="../IMainWindow.ui" line="339"/>
         <source>Setup DEM Paths</source>
         <translation>Nastavit cesty k DEM</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="347"/>
+        <location filename="../IMainWindow.ui" line="348"/>
         <source>About</source>
         <translation>O programu</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="356"/>
+        <location filename="../IMainWindow.ui" line="357"/>
         <source>Help</source>
         <translation>Nápověda</translation>
     </message>
@@ -2894,128 +2967,138 @@ není platným vymezením soustavy souřadnic
         <translation type="obsolete">Nastavit pohled na mapu</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="215"/>
-        <location filename="../IMainWindow.ui" line="218"/>
+        <location filename="../IMainWindow.ui" line="216"/>
+        <location filename="../IMainWindow.ui" line="219"/>
         <source>Add Map View</source>
         <translation>Přidat pohled na mapu</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="365"/>
-        <location filename="../IMainWindow.ui" line="368"/>
+        <location filename="../IMainWindow.ui" line="366"/>
+        <location filename="../IMainWindow.ui" line="369"/>
         <source>Setup Map View</source>
         <translation>Nastavit pohled na mapu</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="377"/>
+        <location filename="../IMainWindow.ui" line="378"/>
         <source>Load GIS Data</source>
         <translation>Nahrát data GIS</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="380"/>
+        <location filename="../IMainWindow.ui" line="381"/>
         <source>Load projects from file</source>
         <translation>Nahrát projekty ze souboru</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="383"/>
+        <location filename="../IMainWindow.ui" line="384"/>
         <source>Ctrl+L</source>
         <translation>Ctrl+L</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="392"/>
+        <location filename="../IMainWindow.ui" line="393"/>
         <source>Save All GIS Data</source>
         <translation>Uložit všechna data GIS</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="395"/>
+        <location filename="../IMainWindow.ui" line="396"/>
         <source>Save all projects in the workspace</source>
         <translation>Uložit všechny projekty na pracovním místě</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="398"/>
+        <location filename="../IMainWindow.ui" line="399"/>
         <source>Ctrl+S</source>
         <translation>Ctrl+S</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="407"/>
+        <location filename="../IMainWindow.ui" line="408"/>
         <source>Setup Time Zone</source>
         <translation>Nastavit časové pásmo</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="416"/>
+        <location filename="../IMainWindow.ui" line="417"/>
         <source>Add empty project</source>
         <translation>Přidat prázdný projekt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="428"/>
+        <location filename="../IMainWindow.ui" line="429"/>
         <source>Search Google</source>
         <translation>Hledat pomocí Google</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="437"/>
+        <location filename="../IMainWindow.ui" line="438"/>
         <source>Close all projects</source>
         <translation>Zavřít všechny projekty</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="440"/>
+        <location filename="../IMainWindow.ui" line="441"/>
         <source>F8</source>
         <translation>F8</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="449"/>
+        <location filename="../IMainWindow.ui" line="450"/>
         <source>Setup Units</source>
         <translation>Nastavit jednotky</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="458"/>
+        <location filename="../IMainWindow.ui" line="459"/>
         <source>Setup Workspace</source>
         <translation>Nastavit pohled</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="461"/>
+        <location filename="../IMainWindow.ui" line="462"/>
         <source>Setup save on exit.</source>
         <translation>Nastavit uložení při ukončení.</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="470"/>
+        <location filename="../IMainWindow.ui" line="471"/>
         <source>Import Database from QLandkarte</source>
         <translation>Zavést databázi z QLandkarte</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="473"/>
+        <location filename="../IMainWindow.ui" line="474"/>
         <source>Import QLandkarte GT database</source>
         <translation>Zavést databázi GT QLandkarte</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="482"/>
+        <location filename="../IMainWindow.ui" line="483"/>
         <source>VRT Builder</source>
         <translation>Sestavovač VRT</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="485"/>
+        <location filename="../IMainWindow.ui" line="486"/>
         <source>GUI front end to gdalbuildvrt</source>
         <translation>Rozhraní pro gdalbuildvrt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="494"/>
+        <location filename="../IMainWindow.ui" line="495"/>
         <source>Store Map View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="497"/>
+        <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>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="506"/>
+        <location filename="../IMainWindow.ui" line="507"/>
         <source>Load Map View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="509"/>
+        <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>
     </message>
     <message>
+        <location filename="../IMainWindow.ui" line="522"/>
+        <source>Ext. Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="525"/>
+        <source>Ctrl+E</source>
+        <translation type="unfinished">Ctrl+E</translation>
+    </message>
+    <message>
         <source>Setup Database</source>
         <translation type="obsolete">Nastavit databázi</translation>
     </message>
@@ -3216,17 +3299,17 @@ není platným vymezením soustavy souřadnic
 <context>
     <name>IPlot</name>
     <message>
-        <location filename="../plot/IPlot.cpp" line="92"/>
+        <location filename="../plot/IPlot.cpp" line="101"/>
         <source>Save...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="482"/>
+        <location filename="../plot/IPlot.cpp" line="500"/>
         <source>No or bad data.</source>
         <translation>Žádné nebo špatné údaje.</translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="875"/>
+        <location filename="../plot/IPlot.cpp" line="1015"/>
         <source>Select output file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3652,6 +3735,14 @@ nebo
     </message>
 </context>
 <context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ISelectCopyAction</name>
     <message>
         <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
@@ -4076,13 +4167,13 @@ nebo
         <translation type="vanished">Špatný polohový formát. Musí být: "[N|S] ddd mm.sss [W|E] ddd mm.sss"</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Failed to read...</source>
         <translation>Nepodařilo se přečíst...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
         <source>Failed to read: %1
 line %2, column %3:
  %4</source>
@@ -4091,7 +4182,7 @@ line %2, column %3:
 %4</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Not a GPX file: </source>
         <translation>Není souborem GPX: </translation>
     </message>
@@ -4126,34 +4217,34 @@ Areas: %1</source>
 Oblasti: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="218"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
         <source><br/>
 Filename: %1</source>
         <translation><br/>
 Název souboru: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="235"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Waypoints: %1</source>
         <translation>Cestovní body: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="260"/>
         <source>Tracks: %1</source>
         <translation>Stopy: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="243"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="264"/>
         <source>Routes: %1</source>
         <translation>Cesty: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="247"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="268"/>
         <source>Areas: %1</source>
         <translation>Oblasti: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="308"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="329"/>
         <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>
@@ -4164,64 +4255,64 @@ Název souboru: %1</translation>
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="408"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="309"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="330"/>
         <source>Delete...</source>
         <translation>Smazat...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open...</source>
         <translation>Nepodařilo se otevřít...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open %1</source>
         <translation>Nepodařilo se otevřít %1</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="126"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="208"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="93"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="157"/>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="216"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="94"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="159"/>
         <source>Save GIS data to...</source>
         <translation>Uložit data GIS do...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Save ...</source>
         <translation>Uložit...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Abort save</source>
         <translation>Zrušit ukládání</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="283"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="291"/>
         <source>File exists ...</source>
         <translation>Soubor existuje...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="284"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="292"/>
         <source>The file exists and it has not been created by QMapShack. If you press 'yes' all data in this file will be lost. Even if this file contains GPX data and has been loaded by QMapShack, QMapShack might not be able to load and store all elements of this file.  Those elements will be lost. I recommend to use another file. <b>Do you really want to overwrite the file?</b></source>
         <translation>Soubor existuje a nebyl vytvořen programem QMapShack. Pokud stisknete Ano, budou všechna data v tomto souboru ztracena. I když by tento soubor obsahoval data GPX a byl nahrán programem QMapShack, QMapShack nemusí být schopen nahrát a uložit všechny prvky tohoto souboru.  Tyto prvky budou ztraceny. Doporučuje se použít jiný soubor. <b>Opravdu chcete soubor přepsat?</b></translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="407"/>
         <source>Saveing GIS data failed...</source>
         <translation>Nepodařilo se uložit data GIS...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="379"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
         <source>Failed to create file '%1'</source>
         <translation>Nepodařilo se vytvořit soubor '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="388"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="402"/>
         <source>Failed to write file '%1'</source>
         <translation>Nepodařilo se zapsat soubor '%1'</translation>
     </message>
@@ -4241,97 +4332,97 @@ Název souboru: %1</translation>
         <translation>Režim pouze pro čtení...</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="619"/>
+        <location filename="../gis/IGisItem.cpp" line="632"/>
         <source><h4>Comment:</h4></source>
         <translation><h4>Poznámka:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="622"/>
+        <location filename="../gis/IGisItem.cpp" line="635"/>
         <source><p>--- no comment ---</p></source>
         <translation><p>--- žádná poznámka ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="633"/>
-        <location filename="../gis/IGisItem.cpp" line="678"/>
+        <location filename="../gis/IGisItem.cpp" line="618"/>
+        <location filename="../gis/IGisItem.cpp" line="677"/>
         <source><h4>Description:</h4></source>
         <translation><h4>Popis:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="636"/>
-        <location filename="../gis/IGisItem.cpp" line="681"/>
+        <location filename="../gis/IGisItem.cpp" line="621"/>
+        <location filename="../gis/IGisItem.cpp" line="680"/>
         <source><p>--- no description ---</p></source>
         <translation><p>--- žádný popis ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="647"/>
-        <location filename="../gis/IGisItem.cpp" line="692"/>
+        <location filename="../gis/IGisItem.cpp" line="646"/>
+        <location filename="../gis/IGisItem.cpp" line="691"/>
         <source><h4>Links:</h4></source>
         <translation><h4>Odkazy:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="650"/>
-        <location filename="../gis/IGisItem.cpp" line="695"/>
+        <location filename="../gis/IGisItem.cpp" line="649"/>
+        <location filename="../gis/IGisItem.cpp" line="694"/>
         <source><p>--- no links ---</p></source>
         <translation><p>--- žádné odkazy ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="363"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
         <source>Length: %1 %2</source>
         <translation>Délka: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="370"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
         <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="378"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
         <source>Time: %1</source>
         <translation>Čas: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="381"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
         <source>, Speed: %1 %2</source>
         <translation>, Rychlost: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
         <source>Moving: %1</source>
         <translation>Pohyb: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="397"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
         <source>Start: %1</source>
         <translation>Začátek: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
         <source>End: %1</source>
         <translation>Konec: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="406"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
         <source>Points: %1 (%2)</source>
         <translation>Body: %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="478"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
         <source>Ele.: %1 %2</source>
         <translation>Výška: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
         <source> slope: %1%3 (%2%)</source>
         <translation> sklon: %1%3 (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1126"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
         <source>Hide points.</source>
         <translation>Skrýt body.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1160"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
         <source>Show points.</source>
         <translation>Ukázat body.</translation>
     </message>
@@ -4340,37 +4431,37 @@ Název souboru: %1</translation>
         <translation type="obsolete"> sklon: %1°(%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="486"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
         <source> speed: %1%2</source>
         <translation> rychlost: %1%2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="498"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Stoupání: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
         <source>Ascend: - (-)</source>
         <translation>Stoupání: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="512"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
         <source> Descend: - (-) </source>
         <translation> Klesání: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="533"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
         <source> Moving: - (-) </source>
         <translation> Pohyb: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="508"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation> Klesání: %1%2 (%3%) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="287"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
         <source>Changed trackpoints, sacrificed all previous data.</source>
         <translation>Změněny body stop. Obětována veškerá předchozí data.</translation>
     </message>
@@ -4379,17 +4470,17 @@ Název souboru: %1</translation>
         <translation type="obsolete"> sklon: %1° (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="519"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Vzdálenost: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="523"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
         <source>Dist.: - (-)</source>
         <translation>Vzdálenost: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="529"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation> Pohyb: %1%2 (%3%) </translation>
     </message>
@@ -4416,7 +4507,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="164"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
         <source>_Clone</source>
         <translation>_Klon</translation>
@@ -4464,14 +4555,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="1493"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
         <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="1505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
         <source>Changed color</source>
         <translation>Změněná barva</translation>
     </message>
@@ -4486,20 +4577,20 @@ Název souboru: %1</translation>
         <translation>Blízkost: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1475"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
         <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="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
+        <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/wpt/CGisItemWpt.cpp" line="190"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Edit name...</source>
         <translation>Upravit název...</translation>
     </message>
@@ -4540,14 +4631,14 @@ Název souboru: %1</translation>
     </message>
     <message>
         <location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
         <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="1487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
         <source>Changed description</source>
         <translation>Změněný popis</translation>
@@ -4568,28 +4659,28 @@ Název souboru: %1</translation>
         <translation>Nedostupné</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>Warning...</source>
         <translation>Varování...</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
         <source>This is a typ file with unknown polygon encoding. Please report!</source>
         <translation>Toto je souborový typ s neznámým druhem mnohoúhelníku. Nahlašte to, prosím!</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>This is a typ file with unknown polyline encoding. Please report!</source>
         <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="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <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="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Enter new track name.</source>
         <translation>Zadat název nové stopy.</translation>
     </message>
@@ -4695,54 +4786,54 @@ Název souboru: %1</translation>
         <translation>Rychlost změněna na %1%2.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Delete project...</source>
         <translation>Smazat projekt...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Do you really want to delete %1?</source>
         <translation>Opravdu chcete smazat %1?</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Error...</source>
         <translation>Chyba...</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
+        <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"/>
         <source>Failed to open %1.</source>
         <translation>Nepodařilo se otevřít %1.</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <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"/>
         <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="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Failed to read data.</source>
         <translation>Nepodařilo se přečíst data.</translation>
     </message>
diff --git a/src/locale/qmapshack_de.ts b/src/locale/qmapshack_de.ts
index ec21684..32e276e 100644
--- a/src/locale/qmapshack_de.ts
+++ b/src/locale/qmapshack_de.ts
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE TS>
-<TS version="2.1" language="de_DE">
+<TS version="2.0" language="de_DE">
 <context>
     <name>CCanvas</name>
     <message>
@@ -8,7 +8,7 @@
         <translation type="obsolete">Ansicht %1</translation>
     </message>
     <message>
-        <location filename="../canvas/CCanvas.cpp" line="61"/>
+        <location filename="../canvas/CCanvas.cpp" line="62"/>
         <source>View %1</source>
         <translation>Ansicht %1</translation>
     </message>
@@ -116,7 +116,7 @@
     </message>
     <message>
         <source>Enter new waypoint name.</source>
-        <translation type="vanished">Geben Sie einen neuen Namen für den Wegpunkt ein.</translation>
+        <translation>Geben Sie einen neuen Namen für den Wegpunkt ein.</translation>
     </message>
     <message>
         <source><h4>Comment:</h4></source>
@@ -138,64 +138,81 @@
 <context>
     <name>CDetailsPrj</name>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="165"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="380"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="194"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="556"/>
         <source>none</source>
         <translation>keine</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Build diary...</source>
         <translation>Tagebuch erstellen...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="234"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="311"/>
         <source><h2>Waypoints</h2></source>
         <translation><h2>Wegpunkte</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="241"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="272"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="337"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="274"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="318"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="349"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="457"/>
         <source>Info</source>
         <translation>Information</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="242"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="273"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="338"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="275"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="319"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="350"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="458"/>
         <source>Comment</source>
         <translation>Kommentar</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="265"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="342"/>
         <source><h2>Tracks</h2></source>
         <translation><h2>Tracks</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="330"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
         <source><h2>Areas</h2></source>
         <translation><h2>Gebiete</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="480"/>
+        <source>distance: %1%2</source>
+        <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>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="484"/>
+        <source>descend: %1%2</source>
+        <translation>Abstieg: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Edit name...</source>
         <translation>Name bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Enter new project name.</source>
         <translation>Geben Sie einen neuen Namen für das Projekt ein.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="509"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="685"/>
         <source>Print Diary</source>
         <translation>Tagebuch drucken</translation>
     </message>
@@ -204,12 +221,12 @@
         <translation type="obsolete">Name eingeben.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Edit keywords...</source>
         <translation>Stichwörter bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Enter keywords.</source>
         <translation>Stichwörter eingeben.</translation>
     </message>
@@ -217,42 +234,42 @@
 <context>
     <name>CDetailsTrk</name>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="62"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="67"/>
         <source>Reduce visible track points</source>
         <translation>Sichtbare Trackpunkte reduzieren</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="75"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="80"/>
         <source>Change elevation of track points</source>
         <translation>Höhe von Trackpunkten ändern</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="88"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="93"/>
         <source>Change timestamp of track points</source>
         <translation>Zeitstempel von Trackpunkten ändern</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="101"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="106"/>
         <source>Cut track into pieces</source>
         <translation>Track in Stücke teilen</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="215"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="224"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
         <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="233"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="252"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="254"/>
+        <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"/>
         <source>%1 %2</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Edit name...</source>
         <translation>Name bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Enter new track name.</source>
         <translation>Geben Sie einen neuen Namen für den Track ein.</translation>
     </message>
@@ -412,53 +429,53 @@
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Save As...</source>
         <translation>Speichern unter...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
         <source>Edit..</source>
         <translation>Bearbeiten..</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Update Project on Devices</source>
         <translation>Aktualisiere das Projekt auf allen Geräten </translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="101"/>
+        <location filename="../gis/CGisListWks.cpp" line="102"/>
         <source>Update Project on Device</source>
         <translation>Aktualisiere das Projekt auf dem Gerät</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="113"/>
+        <location filename="../gis/CGisListWks.cpp" line="114"/>
         <source>Edit...</source>
         <translation>Bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
         <source>Copy to...</source>
         <translation>Kopieren nach...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="126"/>
+        <location filename="../gis/CGisListWks.cpp" line="127"/>
         <source>Move Waypoint</source>
         <translation>Wegpunkt verschieben</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1214"/>
-        <location filename="../gis/CGisListWks.cpp" line="1252"/>
+        <location filename="../gis/CGisListWks.cpp" line="586"/>
+        <location filename="../gis/CGisListWks.cpp" line="1237"/>
+        <location filename="../gis/CGisListWks.cpp" line="1275"/>
         <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>
@@ -467,63 +484,68 @@
         <translation type="obsolete">Wegpunkt verschieben...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
         <source>Proj. Waypoint...</source>
         <translation>Wegpunkt Projektion...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
         <source>Track Profile</source>
         <translation>Trackprofil</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="117"/>
+        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <source>Send to Devices</source>
+        <translation>Ans Gerät senden</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="118"/>
         <source>Select Range</source>
         <translation>Bereich wählen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
         <source>Edit Track Points</source>
         <translation>Trackpunkte bearbeiten</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <location filename="../gis/CGisListWks.cpp" line="120"/>
         <source>Reverse Track</source>
         <translation>Track umkehren</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="120"/>
+        <location filename="../gis/CGisListWks.cpp" line="121"/>
         <source>Combine Tracks</source>
         <translation>Tracks verbinden</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="139"/>
+        <location filename="../gis/CGisListWks.cpp" line="140"/>
         <source>Edit Area Points</source>
         <translation>Gebietspunkte bearbeiten</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="102"/>
-        <location filename="../gis/CGisListWks.cpp" line="121"/>
+        <location filename="../gis/CGisListWks.cpp" line="103"/>
+        <location filename="../gis/CGisListWks.cpp" line="122"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="672"/>
+        <location filename="../gis/CGisListWks.cpp" line="686"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Ansicht speichern. Bitte warten.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="713"/>
+        <location filename="../gis/CGisListWks.cpp" line="727"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Ansicht laden. Bitte warten.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>Close all projects...</source>
         <translation>Alle Projekte schließen...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>This will remove all projects from the workspace.</source>
         <translation>Dies wird alle Projekte aus der Ansicht entfernen.</translation>
     </message>
@@ -603,22 +625,22 @@
 <context>
     <name>CMainWindow</name>
     <message>
-        <location filename="../CMainWindow.cpp" line="466"/>
+        <location filename="../CMainWindow.cpp" line="476"/>
         <source>Ele: %1%2</source>
         <translation>Höhe: %1%2</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="592"/>
+        <location filename="../CMainWindow.cpp" line="602"/>
         <source>Load GIS Data...</source>
         <translation>GIS Daten laden...</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="626"/>
+        <location filename="../CMainWindow.cpp" line="636"/>
         <source>Select output file</source>
         <translation>Ausgabedatei auswählen</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="652"/>
+        <location filename="../CMainWindow.cpp" line="662"/>
         <source>Select file to load</source>
         <translation>Zu ladende Datei auswählen</translation>
     </message>
@@ -809,57 +831,57 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="257"/>
         <source>Major highway</source>
-        <translation></translation>
+        <translation>Autobahn</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="258"/>
         <source>Principal highway</source>
-        <translation></translation>
+        <translation>Bundesstraße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="259"/>
         <source>Other highway</source>
-        <translation></translation>
+        <translation>Schnellstraße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="260"/>
         <source>Arterial road</source>
-        <translation></translation>
+        <translation>Fernstraße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="261"/>
         <source>Collector road</source>
-        <translation></translation>
+        <translation>Sammelstraße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="262"/>
         <source>Residential street</source>
-        <translation></translation>
+        <translation>Wohnstraße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="263"/>
         <source>Alley/Private road</source>
-        <translation></translation>
+        <translation>Allee/Privatstraße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="264"/>
         <source>Highway ramp, low speed</source>
-        <translation></translation>
+        <translation>Auffahrt (langsam)</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="265"/>
         <source>Highway ramp, high speed</source>
-        <translation></translation>
+        <translation>Auffahrt (schnell)</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="266"/>
         <source>Unpaved road</source>
-        <translation></translation>
+        <translation>Unbefestigte Straße</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="267"/>
         <source>Major highway connector</source>
-        <translation></translation>
+        <translation>Autobahnzubringer</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="268"/>
@@ -884,7 +906,7 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="272"/>
         <source>Stream</source>
-        <translation></translation>
+        <translation>Bach</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="273"/>
@@ -900,17 +922,17 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="276"/>
         <source>State/province border</source>
-        <translation></translation>
+        <translation>Staats-/Landesgrenze</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="277"/>
         <source>County/parish border</source>
-        <translation></translation>
+        <translation>Kreis-/Gemeindegrenze</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="278"/>
         <source>International border</source>
-        <translation></translation>
+        <translation>Internationale Grenze</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="279"/>
@@ -950,7 +972,7 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="286"/>
         <source>Intermittent stream</source>
-        <translation></translation>
+        <translation>Intermittierender Bach</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="287"/>
@@ -961,22 +983,22 @@
     <message>
         <location filename="../map/CMapIMG.cpp" line="288"/>
         <source>Pipeline</source>
-        <translation></translation>
+        <translation>Pipeline</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="289"/>
         <source>Powerline</source>
-        <translation></translation>
+        <translation>Stromleitung</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="290"/>
         <source>Marine boundary</source>
-        <translation></translation>
+        <translation>Meeresgrenze</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="291"/>
         <source>Hazard boundary</source>
-        <translation></translation>
+        <translation>Gefahrbereichgrenze</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="356"/>
@@ -1109,50 +1131,50 @@
         <location filename="../map/CMapIMG.cpp" line="387"/>
         <location filename="../map/CMapIMG.cpp" line="394"/>
         <source>Large lake</source>
-        <translation></translation>
+        <translation>See</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="388"/>
         <location filename="../map/CMapIMG.cpp" line="389"/>
         <source>Medium lake</source>
-        <translation></translation>
+        <translation>See</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="390"/>
         <location filename="../map/CMapIMG.cpp" line="391"/>
         <source>Small lake</source>
-        <translation></translation>
+        <translation>See</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="392"/>
         <location filename="../map/CMapIMG.cpp" line="393"/>
         <source>Major lake</source>
-        <translation></translation>
+        <translation>See</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="396"/>
         <source>Major River</source>
-        <translation></translation>
+        <translation>Strom</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="397"/>
         <source>Large River</source>
-        <translation></translation>
+        <translation>Fluss</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="398"/>
         <source>Medium River</source>
-        <translation></translation>
+        <translation>Fluss</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="399"/>
         <source>Small River</source>
-        <translation></translation>
+        <translation>Fluss</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="402"/>
         <source>Intermittent water</source>
-        <translation></translation>
+        <translation>Gewässer</translation>
     </message>
     <message>
         <location filename="../map/CMapIMG.cpp" line="403"/>
@@ -1231,26 +1253,26 @@
         <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="2467"/>
         <location filename="../map/CMapIMG.cpp" line="2475"/>
-        <location filename="../map/CMapIMG.cpp" line="2479"/>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <location filename="../map/CMapIMG.cpp" line="2530"/>
+        <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="2542"/>
-        <location filename="../map/CMapIMG.cpp" line="2547"/>
+        <location filename="../map/CMapIMG.cpp" line="2546"/>
+        <location filename="../map/CMapIMG.cpp" line="2550"/>
+        <location filename="../map/CMapIMG.cpp" line="2555"/>
         <source>Point of Interest</source>
         <translation>Ort von Interesse</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2674"/>
+        <location filename="../map/CMapIMG.cpp" line="2682"/>
         <source>Unknown</source>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2720"/>
         <location filename="../map/CMapIMG.cpp" line="2728"/>
-        <location filename="../map/CMapIMG.cpp" line="2735"/>
+        <location filename="../map/CMapIMG.cpp" line="2736"/>
+        <location filename="../map/CMapIMG.cpp" line="2743"/>
         <source>Area</source>
         <translation>Gebiet</translation>
     </message>
@@ -1308,7 +1330,7 @@
     <name>CMapPropSetup</name>
     <message>
         <source>Cache path...</source>
-        <translation type="vanished">Cache Pfad...</translation>
+        <translation>Cache Pfad...</translation>
     </message>
 </context>
 <context>
@@ -1532,7 +1554,7 @@ Unbekannte Struktur.</translation>
 <context>
     <name>CMouseEditTrk</name>
     <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="47"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="44"/>
         <source><b>Edit Track Points</b><br/>Select a track point for more options.<br/></source>
         <translation><b>Trackpunkte bearbeiten</b><br/>Wähle einen Trackpunkt für mehr Optionen.<br/></translation>
     </message>
@@ -1563,7 +1585,7 @@ Unbekannte Struktur.</translation>
 <context>
     <name>CMouseRangeTrk</name>
     <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="48"/>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="44"/>
         <source><b>Select Range</b><br/>Select first track point. And then a second one.<br/></source>
         <translation><b>Bereich wählen</b><br/>Wählen Sie einen ersten Punkt. Dann einen zweiten.<br/></translation>
     </message>
@@ -1571,7 +1593,7 @@ Unbekannte Struktur.</translation>
 <context>
     <name>CPhotoAlbum</name>
     <message>
-        <location filename="../helpers/CPhotoAlbum.cpp" line="69"/>
+        <location filename="../helpers/CPhotoAlbum.cpp" line="72"/>
         <source>Select images...</source>
         <translation>Bilder wählen...</translation>
     </message>
@@ -1601,17 +1623,17 @@ Unbekannte Struktur.</translation>
 <context>
     <name>CPlotProfile</name>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="63"/>
+        <location filename="../plot/CPlotProfile.cpp" line="65"/>
         <source>distance [%1]</source>
         <translation>Entfernung [%1]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="67"/>
+        <location filename="../plot/CPlotProfile.cpp" line="69"/>
         <source>time [h]</source>
         <translation>Zeit [h]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="69"/>
+        <location filename="../plot/CPlotProfile.cpp" line="71"/>
         <source>alt. [%1]</source>
         <translation>Höhe [%1]</translation>
     </message>
@@ -1904,7 +1926,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../IAbout.ui" line="14"/>
         <source>About....</source>
-        <translation>Über...</translation>
+        <translation>Über....</translation>
     </message>
     <message>
         <location filename="../IAbout.ui" line="43"/>
@@ -1935,12 +1957,57 @@ ist keine gültige Koordinatensystemdefinition:
         <translation></translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="138"/>
+        <location filename="../IAbout.ui" line="140"/>
+        <source>Rainer Unseld </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="147"/>
+        <source>French</source>
+        <translation>Französisch</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="154"/>
+        <source>Czech</source>
+        <translation>Tschechisch</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="161"/>
+        <source>Pavel Fric</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="168"/>
+        <source>German</source>
+        <translation>Deutsch</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="175"/>
+        <source>Translation:</source>
+        <translation>Übersetzung:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="182"/>
+        <source>Josef Latt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Spanish</source>
+        <translation>Spanisch</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="196"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
         <source>This software is licensed under GPL3 or any later version</source>
         <translation>Diese Software steht unter der GPL3 Lizenz (oder spätere Versionen)</translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="145"/>
+        <location filename="../IAbout.ui" line="219"/>
         <source>© 2014 Oliver Eichler (oliver.eichler at gmx.de)</source>
         <translation></translation>
     </message>
@@ -2043,7 +2110,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="144"/>
         <source>Slope </source>
-        <translation>Hangneigung</translation>
+        <translation>Hangneigung </translation>
     </message>
     <message>
         <location filename="../dem/IDemPropSetup.ui" line="186"/>
@@ -2199,7 +2266,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../gis/ovl/IDetailsOvlArea.ui" line="222"/>
         <source>Hist.</source>
-        <translation>Hist.</translation>
+        <translation>History</translation>
     </message>
 </context>
 <context>
@@ -2216,28 +2283,34 @@ ist keine gültige Koordinatensystemdefinition:
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="83"/>
         <source>Sort By Time</source>
         <translation>Sortieren nach Zeit</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="86"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
         <source>Keep Order of Project</source>
         <translation>Reihenfolge beibehalten</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="93"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="99"/>
+        <source>Sort Along Track</source>
+        <translation>Sort. entl. d. Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="127"/>
         <source>Print diary</source>
         <translation>Tagebuch drucken</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="96"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="116"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="106"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="150"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="147"/>
         <source>Rebuild diary.</source>
         <translation>Tagebuch aktualisieren.</translation>
     </message>
@@ -2355,7 +2428,7 @@ ist keine gültige Koordinatensystemdefinition:
     <message>
         <location filename="../gis/trk/IDetailsTrk.ui" line="512"/>
         <source>Hist.</source>
-        <translation>Hist.</translation>
+        <translation>History</translation>
     </message>
     <message>
         <source>TextLabel</source>
@@ -2869,37 +2942,37 @@ ist keine gültige Koordinatensystemdefinition:
         <translation>Ansicht</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="92"/>
+        <location filename="../IMainWindow.ui" line="93"/>
         <source>Window</source>
         <translation>Fenster</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="97"/>
+        <location filename="../IMainWindow.ui" line="98"/>
         <source>?</source>
         <translation>?</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="104"/>
+        <location filename="../IMainWindow.ui" line="105"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="114"/>
+        <location filename="../IMainWindow.ui" line="115"/>
         <source>Tool</source>
         <translation>Werkzeug</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="132"/>
+        <location filename="../IMainWindow.ui" line="133"/>
         <source>Maps</source>
         <translation>Karten</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="169"/>
+        <location filename="../IMainWindow.ui" line="170"/>
         <source>Dig. Elev. Model (DEM)</source>
         <translation>Dig. Höhenmodell (DEM)</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="202"/>
+        <location filename="../IMainWindow.ui" line="203"/>
         <source>Data</source>
         <translation>Daten</translation>
     </message>
@@ -2908,199 +2981,209 @@ ist keine gültige Koordinatensystemdefinition:
         <translation type="obsolete">Ansicht hinzufügen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="215"/>
-        <location filename="../IMainWindow.ui" line="218"/>
+        <location filename="../IMainWindow.ui" line="216"/>
+        <location filename="../IMainWindow.ui" line="219"/>
         <source>Add Map View</source>
         <translation>Kartenansicht hinzufügen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="221"/>
+        <location filename="../IMainWindow.ui" line="222"/>
         <source>Ctrl+T</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="233"/>
+        <location filename="../IMainWindow.ui" line="234"/>
         <source>Show Scale</source>
         <translation>Maßstab</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="242"/>
+        <location filename="../IMainWindow.ui" line="243"/>
         <source>Setup Map Font</source>
         <translation>Kartenfont einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="254"/>
+        <location filename="../IMainWindow.ui" line="255"/>
         <source>Show Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="257"/>
+        <location filename="../IMainWindow.ui" line="258"/>
         <source>Ctrl+G</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="266"/>
+        <location filename="../IMainWindow.ui" line="267"/>
         <source>Setup Grid</source>
         <translation>Gitter einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="269"/>
+        <location filename="../IMainWindow.ui" line="270"/>
         <source>Ctrl+Alt+G</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="281"/>
+        <location filename="../IMainWindow.ui" line="282"/>
         <source>Flip Mouse Wheel</source>
         <translation>Mausrad umdrehen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="290"/>
-        <location filename="../IMainWindow.ui" line="293"/>
+        <location filename="../IMainWindow.ui" line="291"/>
+        <location filename="../IMainWindow.ui" line="294"/>
         <source>Setup Map Paths</source>
         <translation>Kartenverzeichnisse angeben</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="305"/>
+        <location filename="../IMainWindow.ui" line="306"/>
         <source>POI Text</source>
         <translation>POI Text</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="317"/>
+        <location filename="../IMainWindow.ui" line="318"/>
         <source>Night / Day</source>
         <translation>Nacht / Tag</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="329"/>
+        <location filename="../IMainWindow.ui" line="330"/>
         <source>Map Tool Tip</source>
         <translation>Kartentooltip</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="338"/>
+        <location filename="../IMainWindow.ui" line="339"/>
         <source>Setup DEM Paths</source>
         <translation>DEM Verzeichnisse angeben</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="347"/>
+        <location filename="../IMainWindow.ui" line="348"/>
         <source>About</source>
         <translation>Über</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="356"/>
+        <location filename="../IMainWindow.ui" line="357"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="365"/>
-        <location filename="../IMainWindow.ui" line="368"/>
+        <location filename="../IMainWindow.ui" line="366"/>
+        <location filename="../IMainWindow.ui" line="369"/>
         <source>Setup Map View</source>
         <translation>Kartenansicht einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="482"/>
+        <location filename="../IMainWindow.ui" line="483"/>
         <source>VRT Builder</source>
         <translation>VRT Builder</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="485"/>
+        <location filename="../IMainWindow.ui" line="486"/>
         <source>GUI front end to gdalbuildvrt</source>
         <translation>Eine graphische Benutzerschnittstelle zu gdalbuildvrt </translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="494"/>
+        <location filename="../IMainWindow.ui" line="495"/>
         <source>Store Map View</source>
         <translation>Kartenansicht speichern</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="497"/>
+        <location filename="../IMainWindow.ui" line="498"/>
         <source>Write current active map and DEM list including the properties to a file</source>
         <translation>Speichert die aktive Karten und DEM Dateien inklusive der Eigenschaften in einer Datei</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="506"/>
+        <location filename="../IMainWindow.ui" line="507"/>
         <source>Load Map View</source>
         <translation>Kartenansicht laden</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="509"/>
+        <location filename="../IMainWindow.ui" line="510"/>
         <source>Restore view with active map and DEM list including the properties from a file</source>
         <translation>Stellt die aktive Karten und DEM Dateien inklusive der Eigenschaften aus einer Datei wieder her</translation>
     </message>
     <message>
+        <location filename="../IMainWindow.ui" line="522"/>
+        <source>Ext. Profile</source>
+        <translation>Erw. Profil</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="525"/>
+        <source>Ctrl+E</source>
+        <translation></translation>
+    </message>
+    <message>
         <source>Setup Map Workspace</source>
         <translation type="obsolete">Arbeitsplatz einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="377"/>
+        <location filename="../IMainWindow.ui" line="378"/>
         <source>Load GIS Data</source>
         <translation>GIS Daten laden</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="380"/>
+        <location filename="../IMainWindow.ui" line="381"/>
         <source>Load projects from file</source>
         <translation>Lade Datei als Projekt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="383"/>
+        <location filename="../IMainWindow.ui" line="384"/>
         <source>Ctrl+L</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="392"/>
+        <location filename="../IMainWindow.ui" line="393"/>
         <source>Save All GIS Data</source>
         <translation>Alle GIS Daten speichern</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="395"/>
+        <location filename="../IMainWindow.ui" line="396"/>
         <source>Save all projects in the workspace</source>
         <translation>Alle Projekte im Arbeitsplatz speichern</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="398"/>
+        <location filename="../IMainWindow.ui" line="399"/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="407"/>
+        <location filename="../IMainWindow.ui" line="408"/>
         <source>Setup Time Zone</source>
         <translation>Zeitzone einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="416"/>
+        <location filename="../IMainWindow.ui" line="417"/>
         <source>Add empty project</source>
         <translation>Leeres Projekt hinzufügen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="428"/>
+        <location filename="../IMainWindow.ui" line="429"/>
         <source>Search Google</source>
         <translation>Mit Google suchen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="437"/>
+        <location filename="../IMainWindow.ui" line="438"/>
         <source>Close all projects</source>
         <translation>Alle Projekte schließen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="440"/>
+        <location filename="../IMainWindow.ui" line="441"/>
         <source>F8</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="449"/>
+        <location filename="../IMainWindow.ui" line="450"/>
         <source>Setup Units</source>
         <translation>Einheiten einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="458"/>
+        <location filename="../IMainWindow.ui" line="459"/>
         <source>Setup Workspace</source>
         <translation>Arbeitsplatz einstellen</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="461"/>
+        <location filename="../IMainWindow.ui" line="462"/>
         <source>Setup save on exit.</source>
         <translation>Speichert Einstellungen beim Beenden.</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="470"/>
+        <location filename="../IMainWindow.ui" line="471"/>
         <source>Import Database from QLandkarte</source>
         <translation>Datenbankimport aus QLandkarte</translation>
     </message>
@@ -3113,7 +3196,7 @@ ist keine gültige Koordinatensystemdefinition:
         <translation type="obsolete">Datenbank importieren</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="473"/>
+        <location filename="../IMainWindow.ui" line="474"/>
         <source>Import QLandkarte GT database</source>
         <translation>QLandkarte GT Datenbank importieren</translation>
     </message>
@@ -3314,17 +3397,17 @@ ist keine gültige Koordinatensystemdefinition:
 <context>
     <name>IPlot</name>
     <message>
-        <location filename="../plot/IPlot.cpp" line="92"/>
+        <location filename="../plot/IPlot.cpp" line="101"/>
         <source>Save...</source>
         <translation>Speichern ...</translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="482"/>
+        <location filename="../plot/IPlot.cpp" line="500"/>
         <source>No or bad data.</source>
         <translation>Keine oder schlechte Daten.</translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="875"/>
+        <location filename="../plot/IPlot.cpp" line="1015"/>
         <source>Select output file</source>
         <translation>Ausgabedatei auswählen</translation>
     </message>
@@ -3779,6 +3862,14 @@ sein</translation>
     </message>
 </context>
 <context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Geräte auswählen...</translation>
+    </message>
+</context>
+<context>
     <name>ISelectCopyAction</name>
     <message>
         <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
@@ -4188,16 +4279,16 @@ sein</translation>
     </message>
     <message>
         <source>Bad position format. Must be: [N|S] ddd mm.sss [W|E] ddd mm.sss</source>
-        <translation type="vanished">Falsches Positionsformat. Richtig: [N|S] ddd mm.sss [W|E] ddd mm.sss </translation>
+        <translation>Falsches Positionsformat. Richtig: [N|S] ddd mm.sss [W|E] ddd mm.sss </translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Failed to read...</source>
         <translation>Lesen fehlgeschlagen...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
         <source>Failed to read: %1
 line %2, column %3:
  %4</source>
@@ -4206,7 +4297,7 @@ Zeile %2, Spalte %3:
 %4</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Not a GPX file: </source>
         <translation>Keine GPX Datei:</translation>
     </message>
@@ -4236,34 +4327,34 @@ Areas: %1</source>
         <translation type="obsolete">Fläche: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="218"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
         <source><br/>
 Filename: %1</source>
         <translation><br/>
 Dateiname: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="235"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Waypoints: %1</source>
         <translation>Wegpunkte: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="260"/>
         <source>Tracks: %1</source>
         <translation>Tracks: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="243"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="264"/>
         <source>Routes: %1</source>
         <translation>Routen: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="247"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="268"/>
         <source>Areas: %1</source>
         <translation>Gebiete: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="308"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="329"/>
         <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>
@@ -4274,120 +4365,120 @@ Dateiname: %1</translation>
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="408"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="309"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="330"/>
         <source>Delete...</source>
         <translation>Löschen...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open...</source>
         <translation>Öffnen fehlgeschlagen...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open %1</source>
         <translation>Öffnen fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="126"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="208"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="93"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="157"/>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="216"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="94"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="159"/>
         <source>Save GIS data to...</source>
         <translation>GIS Daten speichern in...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Save ...</source>
         <translation>Speichern ...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Abort save</source>
         <translation>Speichern abbrechen</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="283"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="291"/>
         <source>File exists ...</source>
         <translation>Datei existiert...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="284"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="292"/>
         <source>The file exists and it has not been created by QMapShack. If you press 'yes' all data in this file will be lost. Even if this file contains GPX data and has been loaded by QMapShack, QMapShack might not be able to load and store all elements of this file.  Those elements will be lost. I recommend to use another file. <b>Do you really want to overwrite the file?</b></source>
         <translation>Diese Datei wurde nicht mit QMapShack erstellt. Wenn Sie 'Ja' drücken werden alle Daten dieser Datei gelöscht. Selbst wenn diese Datei GPX Daten enthält und mit QMapShack geladen wurde, können nicht alle Elemente dieser Datei durch QMapShack geladen und gespeichert werden. Diese Elemente sind verloren. Ich empfehle die Nutzung einer anderen Datei. <b>Wollen Sie die Datei wirklich überschreiben?</b></translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="379"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
         <source>Failed to create file '%1'</source>
         <translation>Datei %1' konnte nicht erstellt werden</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="407"/>
         <source>Saveing GIS data failed...</source>
         <translation>Speichern der GIS Daten fehlgeschlagen...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="388"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="402"/>
         <source>Failed to write file '%1'</source>
         <translation>Datei %1' konnte nicht gespeichert werden</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="287"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
         <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="363"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
         <source>Length: %1 %2</source>
         <translation>Länge: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="370"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
         <source>, %1%2 %3, %4%5 %6</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="378"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
         <source>Time: %1</source>
         <translation>Gesamtzeit: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="381"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
         <source>, Speed: %1 %2</source>
         <translation>, Geschw.: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
         <source>Moving: %1</source>
         <translation>Zeit in Bew.: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="397"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
         <source>Start: %1</source>
         <translation>Beginn: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
         <source>End: %1</source>
         <translation>Ende: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="406"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
         <source>Points: %1 (%2)</source>
         <translation>Punkte: %1 von %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="478"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
         <source>Ele.: %1 %2</source>
         <translation>Höhe: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
         <source> slope: %1%3 (%2%)</source>
         <translation>, Steigung: %1%3 (%2%)</translation>
     </message>
@@ -4396,12 +4487,12 @@ Dateiname: %1</translation>
         <translation type="obsolete"> Neigung: %1° (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1126"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
         <source>Hide points.</source>
         <translation>Punkte ausblenden.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1160"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
         <source>Show points.</source>
         <translation>Punkte einblenden.</translation>
     </message>
@@ -4410,47 +4501,47 @@ Dateiname: %1</translation>
         <translation type="obsolete">Neigung: %1°(%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="486"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
         <source> speed: %1%2</source>
         <translation>, Geschw.: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="498"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Anstieg: %1 %2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
         <source>Ascend: - (-)</source>
         <translation>Anstieg: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="508"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation>, Abstieg: %1 %2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="512"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
         <source> Descend: - (-) </source>
         <translation>, Abstieg: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="519"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Entf.: %1 %2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="523"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
         <source>Dist.: - (-)</source>
         <translation>Entf.: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="529"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation>, Zeit in Bew.: %1 %2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="533"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
         <source> Moving: - (-) </source>
         <translation>, Zeit in Bew.: - (-) </translation>
     </message>
@@ -4477,7 +4568,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="164"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
         <source>_Clone</source>
         <translation>_Klon</translation>
@@ -4525,26 +4616,26 @@ 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="1493"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
         <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="1505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
         <source>Changed color</source>
         <translation>Farbe geändert</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
+        <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/wpt/CGisItemWpt.cpp" line="190"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Edit name...</source>
         <translation>Name bearbeiten...</translation>
     </message>
@@ -4564,7 +4655,7 @@ Dateiname: %1</translation>
         <translation>Abstand: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1475"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="324"/>
         <source>Changed name</source>
         <translation>Name geändert</translation>
@@ -4601,14 +4692,14 @@ Dateiname: %1</translation>
     </message>
     <message>
         <location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
         <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="1487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
         <source>Changed description</source>
         <translation>Beschreibung geändert</translation>
@@ -4629,18 +4720,18 @@ Dateiname: %1</translation>
         <translation>Nicht verfügbar</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>Warning...</source>
         <translation>Warnung...</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
         <source>This is a typ file with unknown polygon encoding. Please report!</source>
         <translation>Dieser Dateityp hat eine unbekannte Polygon Kodierung. Bitte mitteilen!</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>This is a typ file with unknown polyline encoding. Please report!</source>
         <translation>Dieser Dateityp hat eine unbekannte Polyline Kodierung. Bitte mitteilen!</translation>
     </message>
@@ -4660,46 +4751,46 @@ Dateiname: %1</translation>
         <translation>Schreibgeschützt...</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="619"/>
+        <location filename="../gis/IGisItem.cpp" line="632"/>
         <source><h4>Comment:</h4></source>
         <translation><h4>Kommentar:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="622"/>
+        <location filename="../gis/IGisItem.cpp" line="635"/>
         <source><p>--- no comment ---</p></source>
         <translation><p>--- kein ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="633"/>
-        <location filename="../gis/IGisItem.cpp" line="678"/>
+        <location filename="../gis/IGisItem.cpp" line="618"/>
+        <location filename="../gis/IGisItem.cpp" line="677"/>
         <source><h4>Description:</h4></source>
         <translation><h4>Beschreibung:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="636"/>
-        <location filename="../gis/IGisItem.cpp" line="681"/>
+        <location filename="../gis/IGisItem.cpp" line="621"/>
+        <location filename="../gis/IGisItem.cpp" line="680"/>
         <source><p>--- no description ---</p></source>
         <translation><p>--- keine ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="647"/>
-        <location filename="../gis/IGisItem.cpp" line="692"/>
+        <location filename="../gis/IGisItem.cpp" line="646"/>
+        <location filename="../gis/IGisItem.cpp" line="691"/>
         <source><h4>Links:</h4></source>
         <translation><h4>Verknüpfungen:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="650"/>
-        <location filename="../gis/IGisItem.cpp" line="695"/>
+        <location filename="../gis/IGisItem.cpp" line="649"/>
+        <location filename="../gis/IGisItem.cpp" line="694"/>
         <source><p>--- no links ---</p></source>
         <translation><p>--- keine ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <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="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Enter new track name.</source>
         <translation>Geben Sie einen neuen Namen für den Track ein.</translation>
     </message>
@@ -4809,58 +4900,58 @@ Dateiname: %1</translation>
         <translation>Geschwindigkeit auf %1 %2 geändert.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Delete project...</source>
         <translation>Projekt löschen...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Do you really want to delete %1?</source>
         <translation>Sind Sie sicher, dass sie %1? löschen wollen?</translation>
     </message>
     <message>
         <source>Do you really want to delete %1</source>
-        <translation type="vanished">Sind Sie sicher, dass sie %1 löschen wollen?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <translation>Sind Sie sicher, dass sie %1 löschen wollen?</translation>
+    </message>
+    <message>
+        <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"/>
         <source>Error...</source>
         <translation>Fehler...</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
+        <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"/>
         <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="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <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"/>
         <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="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Failed to read data.</source>
         <translation>Datenlesen fehlgeschlagen.</translation>
     </message>
diff --git a/src/locale/qmapshack_es.ts b/src/locale/qmapshack_es.ts
index d6ca066..25ebc1f 100644
--- a/src/locale/qmapshack_es.ts
+++ b/src/locale/qmapshack_es.ts
@@ -8,7 +8,7 @@
         <translation type="obsolete">Espacio de Trabajo %1</translation>
     </message>
     <message>
-        <location filename="../canvas/CCanvas.cpp" line="61"/>
+        <location filename="../canvas/CCanvas.cpp" line="62"/>
         <source>View %1</source>
         <translation>Vista %1</translation>
     </message>
@@ -134,74 +134,91 @@
 <context>
     <name>CDetailsPrj</name>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="165"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="380"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="194"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="556"/>
         <source>none</source>
         <translation>ninguna</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Build diary...</source>
         <translation>Creando diario...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Abort</source>
         <translation>Cancelar</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="234"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="311"/>
         <source><h2>Waypoints</h2></source>
         <translation>Waypoints</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="241"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="272"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="337"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="274"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="318"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="349"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="457"/>
         <source>Info</source>
         <translation>Información</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="242"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="273"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="338"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="275"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="319"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="350"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="458"/>
         <source>Comment</source>
         <translation>Comentario</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="265"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="342"/>
         <source><h2>Tracks</h2></source>
         <translation>Tracks</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="330"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
         <source><h2>Areas</h2></source>
         <translation>Áreas</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="480"/>
+        <source>distance: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="482"/>
+        <source>ascent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="484"/>
+        <source>descend: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Edit name...</source>
         <translation>Editar nombre...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Enter new project name.</source>
         <translation>Introducir nuevo nombre de proyecto.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Edit keywords...</source>
         <translation>Editar etiquetas...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Enter keywords.</source>
         <translation>Introducir etiquetas.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="509"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="685"/>
         <source>Print Diary</source>
         <translation>Imprimir Diario</translation>
     </message>
@@ -209,42 +226,42 @@
 <context>
     <name>CDetailsTrk</name>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="62"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="67"/>
         <source>Reduce visible track points</source>
         <translation>Reducir puntos visibles del track</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="75"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="80"/>
         <source>Change elevation of track points</source>
         <translation>Cambiar elevación de puntos del track</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="88"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="93"/>
         <source>Change timestamp of track points</source>
         <translation>Cambiar fecha/hora de puntos del track</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="101"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="106"/>
         <source>Cut track into pieces</source>
         <translation>Dividir track en partes</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="215"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="224"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
         <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="233"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="252"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="254"/>
+        <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"/>
         <source>%1 %2</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Edit name...</source>
         <translation type="unfinished">Editar nombre...</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Enter new track name.</source>
         <translation type="unfinished">Introduzca el nombre del nuevo track.</translation>
     </message>
@@ -380,114 +397,119 @@
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Save</source>
         <translation>Guardar</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Save As...</source>
         <translation>Guardar Como...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
         <source>Edit..</source>
         <translation>Editar..</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Update Project on Devices</source>
-        <translation>Actualizar Proyecto en Dispositivos</translation>
+        <translation type="vanished">Actualizar Proyecto en Dispositivos</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Close</source>
         <translation>Cerrar</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="101"/>
+        <location filename="../gis/CGisListWks.cpp" line="102"/>
         <source>Update Project on Device</source>
         <translation>Actualizar Proyecto en Dsipositivo</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="113"/>
+        <location filename="../gis/CGisListWks.cpp" line="114"/>
         <source>Edit...</source>
         <translation>Editar...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
         <source>Copy to...</source>
         <translation>Copiar a...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="126"/>
+        <location filename="../gis/CGisListWks.cpp" line="127"/>
         <source>Move Waypoint</source>
         <translation>Mover Waypoint</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
         <source>Proj. Waypoint...</source>
         <translation>Proyectar Waypoint...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1214"/>
-        <location filename="../gis/CGisListWks.cpp" line="1252"/>
+        <location filename="../gis/CGisListWks.cpp" line="586"/>
+        <location filename="../gis/CGisListWks.cpp" line="1237"/>
+        <location filename="../gis/CGisListWks.cpp" line="1275"/>
         <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>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
         <source>Track Profile</source>
         <translation>Perfil del Track</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="117"/>
+        <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <source>Send to Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="118"/>
         <source>Select Range</source>
         <translation>Seleccionar Rango</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
         <source>Edit Track Points</source>
         <translation>Editar Puntos del Track</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <location filename="../gis/CGisListWks.cpp" line="120"/>
         <source>Reverse Track</source>
         <translation>Invertir Track</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="120"/>
+        <location filename="../gis/CGisListWks.cpp" line="121"/>
         <source>Combine Tracks</source>
         <translation>Combinar Tracks</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="139"/>
+        <location filename="../gis/CGisListWks.cpp" line="140"/>
         <source>Edit Area Points</source>
         <translation>Editar Puntos del Área</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="102"/>
-        <location filename="../gis/CGisListWks.cpp" line="121"/>
+        <location filename="../gis/CGisListWks.cpp" line="103"/>
+        <location filename="../gis/CGisListWks.cpp" line="122"/>
         <source>Delete</source>
         <translation>Borrar</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="672"/>
+        <location filename="../gis/CGisListWks.cpp" line="686"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Guardando espacio de trabajo. Por favor espere.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="713"/>
+        <location filename="../gis/CGisListWks.cpp" line="727"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Cargando espacio de trabajo. Por favor espere.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>Close all projects...</source>
         <translation>Cerrar todos los proyectos...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>This will remove all projects from the workspace.</source>
         <translation>Esto quitará.todos los proyectos.del espacio de trabajo.</translation>
     </message>
@@ -551,22 +573,22 @@
 <context>
     <name>CMainWindow</name>
     <message>
-        <location filename="../CMainWindow.cpp" line="466"/>
+        <location filename="../CMainWindow.cpp" line="476"/>
         <source>Ele: %1%2</source>
         <translation>Alt: %1%2</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="592"/>
+        <location filename="../CMainWindow.cpp" line="602"/>
         <source>Load GIS Data...</source>
         <translation>Cargar Datos GIS...</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="626"/>
+        <location filename="../CMainWindow.cpp" line="636"/>
         <source>Select output file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="652"/>
+        <location filename="../CMainWindow.cpp" line="662"/>
         <source>Select file to load</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1178,26 +1200,26 @@
         <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="2467"/>
         <location filename="../map/CMapIMG.cpp" line="2475"/>
-        <location filename="../map/CMapIMG.cpp" line="2479"/>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <location filename="../map/CMapIMG.cpp" line="2530"/>
+        <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="2542"/>
-        <location filename="../map/CMapIMG.cpp" line="2547"/>
+        <location filename="../map/CMapIMG.cpp" line="2546"/>
+        <location filename="../map/CMapIMG.cpp" line="2550"/>
+        <location filename="../map/CMapIMG.cpp" line="2555"/>
         <source>Point of Interest</source>
         <translation>Punto de Interés</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2674"/>
+        <location filename="../map/CMapIMG.cpp" line="2682"/>
         <source>Unknown</source>
         <translation>Desconocido</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2720"/>
         <location filename="../map/CMapIMG.cpp" line="2728"/>
-        <location filename="../map/CMapIMG.cpp" line="2735"/>
+        <location filename="../map/CMapIMG.cpp" line="2736"/>
+        <location filename="../map/CMapIMG.cpp" line="2743"/>
         <source>Area</source>
         <translation>Área</translation>
     </message>
@@ -1444,7 +1466,7 @@ Estructura desconocida.</translation>
 <context>
     <name>CMouseEditTrk</name>
     <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="47"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="44"/>
         <source><b>Edit Track Points</b><br/>Select a track point for more options.<br/></source>
         <translation><b>Editar Puntos del Track</b><br/>Selecciones un punto del track para más opciones.<br/></translation>
     </message>
@@ -1475,7 +1497,7 @@ Estructura desconocida.</translation>
 <context>
     <name>CMouseRangeTrk</name>
     <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="48"/>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="44"/>
         <source><b>Select Range</b><br/>Select first track point. And then a second one.<br/></source>
         <translation><b>Seleccione Rango</b><br/>En el track, seleccione el primer punto, y otro más a continuación.<br/></translation>
     </message>
@@ -1483,7 +1505,7 @@ Estructura desconocida.</translation>
 <context>
     <name>CPhotoAlbum</name>
     <message>
-        <location filename="../helpers/CPhotoAlbum.cpp" line="69"/>
+        <location filename="../helpers/CPhotoAlbum.cpp" line="72"/>
         <source>Select images...</source>
         <translation>Seleccionar imagenes...</translation>
     </message>
@@ -1513,17 +1535,17 @@ Estructura desconocida.</translation>
 <context>
     <name>CPlotProfile</name>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="63"/>
+        <location filename="../plot/CPlotProfile.cpp" line="65"/>
         <source>distance [%1]</source>
         <translation>distancia [%1]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="67"/>
+        <location filename="../plot/CPlotProfile.cpp" line="69"/>
         <source>time [h]</source>
         <translation>tiempo [h]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="69"/>
+        <location filename="../plot/CPlotProfile.cpp" line="71"/>
         <source>alt. [%1]</source>
         <translation>alt. [%1]</translation>
     </message>
@@ -1843,12 +1865,57 @@ no es una definición de sistema de coordenadas válido:
         <translation>Proj4</translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="138"/>
+        <location filename="../IAbout.ui" line="140"/>
+        <source>Rainer Unseld </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="147"/>
+        <source>French</source>
+        <translation type="unfinished">Francés</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="154"/>
+        <source>Czech</source>
+        <translation type="unfinished">Checo</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="161"/>
+        <source>Pavel Fric</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="168"/>
+        <source>German</source>
+        <translation type="unfinished">Alemán</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="175"/>
+        <source>Translation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="182"/>
+        <source>Josef Latt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Spanish</source>
+        <translation type="unfinished">Español</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="196"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
         <source>This software is licensed under GPL3 or any later version</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="145"/>
+        <location filename="../IAbout.ui" line="219"/>
         <source>© 2014 Oliver Eichler (oliver.eichler at gmx.de)</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2124,28 +2191,34 @@ no es una definición de sistema de coordenadas válido:
         <translation>-</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="83"/>
         <source>Sort By Time</source>
         <translation>Ordenar por Fecha/Hora</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="86"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
         <source>Keep Order of Project</source>
         <translation>Mantener orden del proyecto</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="93"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="99"/>
+        <source>Sort Along Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="127"/>
         <source>Print diary</source>
         <translation>Imprimir diario</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="96"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="116"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="106"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="150"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="147"/>
         <source>Rebuild diary.</source>
         <translation>Recargar diario.</translation>
     </message>
@@ -2762,37 +2835,37 @@ no es una definición de sistema de coordenadas válido:
         <translation>Ver</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="92"/>
+        <location filename="../IMainWindow.ui" line="93"/>
         <source>Window</source>
         <translation>Ventana</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="97"/>
+        <location filename="../IMainWindow.ui" line="98"/>
         <source>?</source>
         <translation>?</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="104"/>
+        <location filename="../IMainWindow.ui" line="105"/>
         <source>Project</source>
         <translation>Proyecto</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="114"/>
+        <location filename="../IMainWindow.ui" line="115"/>
         <source>Tool</source>
         <translation>Herramientas</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="132"/>
+        <location filename="../IMainWindow.ui" line="133"/>
         <source>Maps</source>
         <translation>Mapas</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="169"/>
+        <location filename="../IMainWindow.ui" line="170"/>
         <source>Dig. Elev. Model (DEM)</source>
         <translation>Modelo Digital del Terreno (DEM)</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="202"/>
+        <location filename="../IMainWindow.ui" line="203"/>
         <source>Data</source>
         <translation>Datos</translation>
     </message>
@@ -2801,204 +2874,214 @@ no es una definición de sistema de coordenadas válido:
         <translation type="obsolete">Añadir Espacio de Trabajo de Mapa</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="215"/>
-        <location filename="../IMainWindow.ui" line="218"/>
+        <location filename="../IMainWindow.ui" line="216"/>
+        <location filename="../IMainWindow.ui" line="219"/>
         <source>Add Map View</source>
         <translation>Añadir Vista de Mapa</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="221"/>
+        <location filename="../IMainWindow.ui" line="222"/>
         <source>Ctrl+T</source>
         <translation>Ctrl+T</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="233"/>
+        <location filename="../IMainWindow.ui" line="234"/>
         <source>Show Scale</source>
         <translation>Mostrar Escala</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="242"/>
+        <location filename="../IMainWindow.ui" line="243"/>
         <source>Setup Map Font</source>
         <translation>Configurar Fuente del Mapa</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="254"/>
+        <location filename="../IMainWindow.ui" line="255"/>
         <source>Show Grid</source>
         <translation>Mostrar Malla</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="257"/>
+        <location filename="../IMainWindow.ui" line="258"/>
         <source>Ctrl+G</source>
         <translation>Ctrl+G</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="266"/>
+        <location filename="../IMainWindow.ui" line="267"/>
         <source>Setup Grid</source>
         <translation>Configurar Malla</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="269"/>
+        <location filename="../IMainWindow.ui" line="270"/>
         <source>Ctrl+Alt+G</source>
         <translation>Ctrl+Alt+G</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="281"/>
+        <location filename="../IMainWindow.ui" line="282"/>
         <source>Flip Mouse Wheel</source>
         <translation>Invertir la Rueda del Ratón</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="290"/>
-        <location filename="../IMainWindow.ui" line="293"/>
+        <location filename="../IMainWindow.ui" line="291"/>
+        <location filename="../IMainWindow.ui" line="294"/>
         <source>Setup Map Paths</source>
         <translation>Configurar Rutas de Mapas</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="305"/>
+        <location filename="../IMainWindow.ui" line="306"/>
         <source>POI Text</source>
         <translation>Texto del POI</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="317"/>
+        <location filename="../IMainWindow.ui" line="318"/>
         <source>Night / Day</source>
         <translation>Noche / Día</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="329"/>
+        <location filename="../IMainWindow.ui" line="330"/>
         <source>Map Tool Tip</source>
         <translation>Mostrar Tooltips en los Mapas</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="338"/>
+        <location filename="../IMainWindow.ui" line="339"/>
         <source>Setup DEM Paths</source>
         <translation>Configurar Rutas a los DEM</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="347"/>
+        <location filename="../IMainWindow.ui" line="348"/>
         <source>About</source>
         <translation>Acerca de</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="356"/>
+        <location filename="../IMainWindow.ui" line="357"/>
         <source>Help</source>
         <translation>Ayuda</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="365"/>
-        <location filename="../IMainWindow.ui" line="368"/>
+        <location filename="../IMainWindow.ui" line="366"/>
+        <location filename="../IMainWindow.ui" line="369"/>
         <source>Setup Map View</source>
         <translation>Configurar Vista de Mapa</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="482"/>
+        <location filename="../IMainWindow.ui" line="483"/>
         <source>VRT Builder</source>
         <translation>Asistente VRT</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="485"/>
+        <location filename="../IMainWindow.ui" line="486"/>
         <source>GUI front end to gdalbuildvrt</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="494"/>
+        <location filename="../IMainWindow.ui" line="495"/>
         <source>Store Map View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="497"/>
+        <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>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="506"/>
+        <location filename="../IMainWindow.ui" line="507"/>
         <source>Load Map View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="509"/>
+        <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>
     </message>
     <message>
+        <location filename="../IMainWindow.ui" line="522"/>
+        <source>Ext. Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="525"/>
+        <source>Ctrl+E</source>
+        <translation type="unfinished">Ctrl+E</translation>
+    </message>
+    <message>
         <source>Setup Map Workspace</source>
         <translation type="obsolete">Configurar Espacio de Trabajo de Mapas</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="377"/>
+        <location filename="../IMainWindow.ui" line="378"/>
         <source>Load GIS Data</source>
         <translation>Cargar Datos GIS</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="380"/>
+        <location filename="../IMainWindow.ui" line="381"/>
         <source>Load projects from file</source>
         <translation>Cargar proyectos desde archivo</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="383"/>
+        <location filename="../IMainWindow.ui" line="384"/>
         <source>Ctrl+L</source>
         <translation>Ctrl+L</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="392"/>
+        <location filename="../IMainWindow.ui" line="393"/>
         <source>Save All GIS Data</source>
         <translation>Guardar Todos los Datos GIS</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="395"/>
+        <location filename="../IMainWindow.ui" line="396"/>
         <source>Save all projects in the workspace</source>
         <translation>Guardar todos los proyectos del espacio de trabajo</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="398"/>
+        <location filename="../IMainWindow.ui" line="399"/>
         <source>Ctrl+S</source>
         <translation>Ctrl+S</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="407"/>
+        <location filename="../IMainWindow.ui" line="408"/>
         <source>Setup Time Zone</source>
         <translation>Configurar Zona Horaria</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="416"/>
+        <location filename="../IMainWindow.ui" line="417"/>
         <source>Add empty project</source>
         <translation>Añadir proyecto vacío</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="428"/>
+        <location filename="../IMainWindow.ui" line="429"/>
         <source>Search Google</source>
         <translation>Buscar en Google</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="437"/>
+        <location filename="../IMainWindow.ui" line="438"/>
         <source>Close all projects</source>
         <translation>Cerrar todos los proyectos</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="440"/>
+        <location filename="../IMainWindow.ui" line="441"/>
         <source>F8</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="449"/>
+        <location filename="../IMainWindow.ui" line="450"/>
         <source>Setup Units</source>
         <translation>Configurar Unidades</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="458"/>
+        <location filename="../IMainWindow.ui" line="459"/>
         <source>Setup Workspace</source>
         <translation>Configurar Espacio de trabajo</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="461"/>
+        <location filename="../IMainWindow.ui" line="462"/>
         <source>Setup save on exit.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="470"/>
+        <location filename="../IMainWindow.ui" line="471"/>
         <source>Import Database from QLandkarte</source>
         <translation>Importar base de datos de Qlandkarte</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="473"/>
+        <location filename="../IMainWindow.ui" line="474"/>
         <source>Import QLandkarte GT database</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3199,17 +3282,17 @@ no es una definición de sistema de coordenadas válido:
 <context>
     <name>IPlot</name>
     <message>
-        <location filename="../plot/IPlot.cpp" line="92"/>
+        <location filename="../plot/IPlot.cpp" line="101"/>
         <source>Save...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="482"/>
+        <location filename="../plot/IPlot.cpp" line="500"/>
         <source>No or bad data.</source>
         <translation>Datos incorrectos o inexistentes.</translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="875"/>
+        <location filename="../plot/IPlot.cpp" line="1015"/>
         <source>Select output file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3627,6 +3710,14 @@ o
     </message>
 </context>
 <context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ISelectCopyAction</name>
     <message>
         <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
@@ -4043,13 +4134,13 @@ o
         <translation type="vanished">Formato de posición incorrecto. Debe ser: "[N|S] ggg mm.sss [W|E] ggg mm.sss"</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Failed to read...</source>
         <translation>Fallo al leer...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
         <source>Failed to read: %1
 line %2, column %3:
  %4</source>
@@ -4058,7 +4149,7 @@ línea %2, columna %3.
  %4</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Not a GPX file: </source>
         <translation>No es un archivo GPX: </translation>
     </message>
@@ -4093,33 +4184,33 @@ Areas: %1</source>
 Áreas: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="218"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
         <source><br/>
 Filename: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="235"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Waypoints: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="260"/>
         <source>Tracks: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="243"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="264"/>
         <source>Routes: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="247"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="268"/>
         <source>Areas: %1</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="308"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="329"/>
         <source>Are you sure you want to delete '%1' from project '%2'?</source>
         <translation>¿Desea realmente eleiminar '%1' del proyecto '%2'?</translation>
     </message>
@@ -4130,175 +4221,175 @@ Filename: %1</source>
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="408"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="309"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="330"/>
         <source>Delete...</source>
         <translation>Borrar...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open...</source>
         <translation>Fallo al abrir...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open %1</source>
         <translation>Fallo al abrir %1</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="126"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="208"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="93"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="157"/>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="216"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="94"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="159"/>
         <source>Save GIS data to...</source>
         <translation>Guardar los datos GIS en...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Save ...</source>
         <translation>Guardar...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Abort save</source>
         <translation>Cancelar guardar</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="283"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="291"/>
         <source>File exists ...</source>
         <translation>El archivo ya existe ...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="284"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="292"/>
         <source>The file exists and it has not been created by QMapShack. If you press 'yes' all data in this file will be lost. Even if this file contains GPX data and has been loaded by QMapShack, QMapShack might not be able to load and store all elements of this file.  Those elements will be lost. I recommend to use another file. <b>Do you really want to overwrite the file?</b></source>
         <translation>El archivo ya existe y no lo ha creado QMapShack. Si pulsa 'sí' todos los datos de este archivo se perderán. Incluso si el archivo contiene datos GPX y QMapShack lo ha leído, QMapShack podría no ser capaz de leer y almacenar todos los elementos en el archivo, y aquellos que no haya leído se perderán. Se le recomienda usar otro archivo distinto. <b>¿Quiere realmente sobrescribir el archivo</b></translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="379"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
         <source>Failed to create file '%1'</source>
         <translation>Fallo al crear el archivo '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="407"/>
         <source>Saveing GIS data failed...</source>
         <translation>Fallo al guardar los datos GIS...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="388"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="402"/>
         <source>Failed to write file '%1'</source>
         <translation>Fallo al escribir en el archivo '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="363"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
         <source>Length: %1 %2</source>
         <translation>Longitud: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="370"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
         <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="378"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
         <source>Time: %1</source>
         <translation>Tiempo: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="381"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
         <source>, Speed: %1 %2</source>
         <translation>, Velocidad: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
         <source>Moving: %1</source>
         <translation>En movimiento: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="397"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
         <source>Start: %1</source>
         <translation>Comienzo: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
         <source>End: %1</source>
         <translation>Final: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="406"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
         <source>Points: %1 (%2)</source>
         <translation>Puntos: %1 (%2)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="478"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
         <source>Ele.: %1 %2</source>
         <translation>Altitud: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
         <source> slope: %1%3 (%2%)</source>
         <translation> pendiente: %1%3 (%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="486"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
         <source> speed: %1%2</source>
         <translation> velocidad: %1%2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="498"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Ascenso: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
         <source>Ascend: - (-)</source>
         <translation>Ascenso: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="512"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
         <source> Descend: - (-) </source>
         <translation> Descenso: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="533"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
         <source> Moving: - (-) </source>
         <translation> En movimiento: - (-) </translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1126"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
         <source>Hide points.</source>
         <translation>Ocultar puntos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1160"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
         <source>Show points.</source>
         <translation>Mostrar puntos.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="508"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation> Descenso: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="287"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
         <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="519"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Distancia: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="523"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
         <source>Dist.: - (-)</source>
         <translation>Dist.: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="529"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation> En movimiento: %1%2 (%3%)</translation>
     </message>
@@ -4325,7 +4416,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="164"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
         <source>_Clone</source>
         <translation type="unfinished"></translation>
@@ -4373,14 +4464,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="1493"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
         <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="1505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
         <source>Changed color</source>
         <translation>Se cambió el color</translation>
     </message>
@@ -4395,20 +4486,20 @@ Filename: %1</source>
         <translation>Proximidad: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1475"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
         <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="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
+        <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/wpt/CGisItemWpt.cpp" line="190"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Edit name...</source>
         <translation>Editar nombre...</translation>
     </message>
@@ -4449,14 +4540,14 @@ Filename: %1</source>
     </message>
     <message>
         <location filename="../gis/rte/CGisItemRte.cpp" line="127"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
         <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="1487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
         <source>Changed description</source>
         <translation>Se cambió la descripción</translation>
@@ -4477,18 +4568,18 @@ Filename: %1</source>
         <translation>No Disponible</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>Warning...</source>
         <translation>Aviso...</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
         <source>This is a typ file with unknown polygon encoding. Please report!</source>
         <translation>Este es un fichero TYP con una codificación de polígonos desconocida. ¡Por favor repórtelo!</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>This is a typ file with unknown polyline encoding. Please report!</source>
         <translation>Este es un fichero TYP con una codificación de polilíneas desconocida. ¡Por favor repórtelo!</translation>
     </message>
@@ -4508,46 +4599,46 @@ Filename: %1</source>
         <translation>Modo Sólo Lectura...</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="619"/>
+        <location filename="../gis/IGisItem.cpp" line="632"/>
         <source><h4>Comment:</h4></source>
         <translation><h4>Comentario:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="622"/>
+        <location filename="../gis/IGisItem.cpp" line="635"/>
         <source><p>--- no comment ---</p></source>
         <translation><p>---sin comentario---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="633"/>
-        <location filename="../gis/IGisItem.cpp" line="678"/>
+        <location filename="../gis/IGisItem.cpp" line="618"/>
+        <location filename="../gis/IGisItem.cpp" line="677"/>
         <source><h4>Description:</h4></source>
         <translation><h4>Descripción:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="636"/>
-        <location filename="../gis/IGisItem.cpp" line="681"/>
+        <location filename="../gis/IGisItem.cpp" line="621"/>
+        <location filename="../gis/IGisItem.cpp" line="680"/>
         <source><p>--- no description ---</p></source>
         <translation><p>---sin descripción---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="647"/>
-        <location filename="../gis/IGisItem.cpp" line="692"/>
+        <location filename="../gis/IGisItem.cpp" line="646"/>
+        <location filename="../gis/IGisItem.cpp" line="691"/>
         <source><h4>Links:</h4></source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="650"/>
-        <location filename="../gis/IGisItem.cpp" line="695"/>
+        <location filename="../gis/IGisItem.cpp" line="649"/>
+        <location filename="../gis/IGisItem.cpp" line="694"/>
         <source><p>--- no links ---</p></source>
         <translation><p>--- sin links ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <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="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Enter new track name.</source>
         <translation>Introduzca el nombre del nuevo track.</translation>
     </message>
@@ -4653,54 +4744,54 @@ Filename: %1</source>
         <translation>Velocidad modificada a %1%2.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Delete project...</source>
         <translation>Eliminar Proyecto...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Do you really want to delete %1?</source>
         <translation>¿Desea realmente eliminar %1?</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Error...</source>
         <translation>Error...</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
+        <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"/>
         <source>Failed to open %1.</source>
         <translation>Fallo al abrir %1.</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <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"/>
         <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="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Failed to read data.</source>
         <translation>Fallo al leer los datos.</translation>
     </message>
diff --git a/src/locale/qmapshack_fr.ts b/src/locale/qmapshack_fr.ts
index ca51405..8059b93 100644
--- a/src/locale/qmapshack_fr.ts
+++ b/src/locale/qmapshack_fr.ts
@@ -4,7 +4,7 @@
 <context>
     <name>CCanvas</name>
     <message>
-        <location filename="../canvas/CCanvas.cpp" line="61"/>
+        <location filename="../canvas/CCanvas.cpp" line="62"/>
         <source>View %1</source>
         <translation>Vue %1</translation>
     </message>
@@ -115,74 +115,91 @@
 <context>
     <name>CDetailsPrj</name>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="165"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="380"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="194"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="556"/>
         <source>none</source>
         <translation>aucun</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Build diary...</source>
         <translation>Créer le journal...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="229"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="253"/>
         <source>Abort</source>
         <translation>Annuler</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="234"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="311"/>
         <source><h2>Waypoints</h2></source>
         <translation><h2>Waypoints</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="241"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="272"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="337"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="274"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="318"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="349"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="457"/>
         <source>Info</source>
         <translation>Information</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="242"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="273"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="338"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="275"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="319"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="350"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="458"/>
         <source>Comment</source>
         <translation>Commentaire</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="265"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="342"/>
         <source><h2>Tracks</h2></source>
         <translation><h2>Traces</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="330"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
         <source><h2>Areas</h2></source>
         <translation><h2>Surfaces</h2></translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="480"/>
+        <source>distance: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="482"/>
+        <source>ascent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="484"/>
+        <source>descend: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Edit name...</source>
         <translation>Éditer le nom...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="366"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="393"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="542"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="569"/>
         <source>Enter new project name.</source>
         <translation>Saisir le nom du projet.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Edit keywords...</source>
         <translation>Éditer les mots-clés...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="375"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="551"/>
         <source>Enter keywords.</source>
         <translation>Saisir les mots-clés.</translation>
     </message>
     <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="509"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="685"/>
         <source>Print Diary</source>
         <translation>Imprimer le journal</translation>
     </message>
@@ -190,42 +207,42 @@
 <context>
     <name>CDetailsTrk</name>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="62"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="67"/>
         <source>Reduce visible track points</source>
         <translation>Réduire les points visibles de la trace</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="75"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="80"/>
         <source>Change elevation of track points</source>
         <translation>Modifier l'altitude des points de la trace</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="88"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="93"/>
         <source>Change timestamp of track points</source>
         <translation>Modifier l'horodatage des points de la trace</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="101"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="106"/>
         <source>Cut track into pieces</source>
         <translation>Découper la trace</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="215"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="224"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="218"/>
         <location filename="../gis/trk/CDetailsTrk.cpp" line="227"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="233"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="252"/>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="254"/>
+        <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"/>
         <source>%1 %2</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Edit name...</source>
         <translation type="unfinished">Éditer le nom...</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="368"/>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="370"/>
         <source>Enter new track name.</source>
         <translation type="unfinished">Saisir le nouveau nom de la trace.</translation>
     </message>
@@ -329,114 +346,119 @@
 <context>
     <name>CGisListWks</name>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="91"/>
+        <location filename="../gis/CGisListWks.cpp" line="92"/>
         <source>Edit..</source>
         <translation>Éditer..</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="92"/>
+        <location filename="../gis/CGisListWks.cpp" line="93"/>
         <source>Save As...</source>
         <translation>Enregistrer sous...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="93"/>
+        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Save</source>
         <translation>Enregistrer</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="94"/>
         <source>Update Project on Devices</source>
-        <translation>Mettre à jour le projet sur tous les appareils</translation>
+        <translation type="vanished">Mettre à jour le projet sur tous les appareils</translation>
     </message>
     <message>
         <location filename="../gis/CGisListWks.cpp" line="95"/>
+        <source>Send to Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="96"/>
         <source>Close</source>
         <translation>Fermer</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="101"/>
+        <location filename="../gis/CGisListWks.cpp" line="102"/>
         <source>Update Project on Device</source>
         <translation>Mettre à jour le projet sur l'appareil</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="102"/>
-        <location filename="../gis/CGisListWks.cpp" line="121"/>
+        <location filename="../gis/CGisListWks.cpp" line="103"/>
+        <location filename="../gis/CGisListWks.cpp" line="122"/>
         <source>Delete</source>
         <translation>Supprimer</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="113"/>
+        <location filename="../gis/CGisListWks.cpp" line="114"/>
         <source>Edit...</source>
         <translation>Éditer..</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
         <source>Copy to...</source>
         <translation>Copier vers...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
         <source>Track Profile</source>
         <translation>Profile de la trace</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="117"/>
+        <location filename="../gis/CGisListWks.cpp" line="118"/>
         <source>Select Range</source>
         <translation>Sélectionner des points</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
         <source>Edit Track Points</source>
         <translation>Éditer les points de la trace</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <location filename="../gis/CGisListWks.cpp" line="120"/>
         <source>Reverse Track</source>
         <translation>Inverser la trace</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="120"/>
+        <location filename="../gis/CGisListWks.cpp" line="121"/>
         <source>Combine Tracks</source>
         <translation>Joindre des traces</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="126"/>
+        <location filename="../gis/CGisListWks.cpp" line="127"/>
         <source>Move Waypoint</source>
         <translation>Déplacer le waypoint</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
         <source>Proj. Waypoint...</source>
         <translation>Projection du waypoint...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="139"/>
+        <location filename="../gis/CGisListWks.cpp" line="140"/>
         <source>Edit Area Points</source>
         <translation>Éditer les points de la surface</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="672"/>
+        <location filename="../gis/CGisListWks.cpp" line="686"/>
         <source>Saving workspace. Please wait.</source>
         <translation>Sauvegarde de l'espace de travail. Patientez.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="713"/>
+        <location filename="../gis/CGisListWks.cpp" line="727"/>
         <source>Loading workspace. Please wait.</source>
         <translation>Chargement de l'espace de travail. Patientez.</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <source>Close all projects...</source>
         <translation>Fermer tous les projets...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="1162"/>
+        <location filename="../gis/CGisListWks.cpp" line="1176"/>
         <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="1214"/>
-        <location filename="../gis/CGisListWks.cpp" line="1252"/>
+        <location filename="../gis/CGisListWks.cpp" line="586"/>
+        <location filename="../gis/CGisListWks.cpp" line="1237"/>
+        <location filename="../gis/CGisListWks.cpp" line="1275"/>
         <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>
@@ -496,22 +518,22 @@
 <context>
     <name>CMainWindow</name>
     <message>
-        <location filename="../CMainWindow.cpp" line="466"/>
+        <location filename="../CMainWindow.cpp" line="476"/>
         <source>Ele: %1%2</source>
         <translation>Altitude: %1%2</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="592"/>
+        <location filename="../CMainWindow.cpp" line="602"/>
         <source>Load GIS Data...</source>
         <translation>Charger des données SIG...</translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="626"/>
+        <location filename="../CMainWindow.cpp" line="636"/>
         <source>Select output file</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../CMainWindow.cpp" line="652"/>
+        <location filename="../CMainWindow.cpp" line="662"/>
         <source>Select file to load</source>
         <translation type="unfinished"></translation>
     </message>
@@ -1123,26 +1145,26 @@
         <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="2467"/>
         <location filename="../map/CMapIMG.cpp" line="2475"/>
-        <location filename="../map/CMapIMG.cpp" line="2479"/>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <location filename="../map/CMapIMG.cpp" line="2530"/>
+        <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="2542"/>
-        <location filename="../map/CMapIMG.cpp" line="2547"/>
+        <location filename="../map/CMapIMG.cpp" line="2546"/>
+        <location filename="../map/CMapIMG.cpp" line="2550"/>
+        <location filename="../map/CMapIMG.cpp" line="2555"/>
         <source>Point of Interest</source>
         <translation>Point d'intérêt</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2674"/>
+        <location filename="../map/CMapIMG.cpp" line="2682"/>
         <source>Unknown</source>
         <translation>Inconnu</translation>
     </message>
     <message>
-        <location filename="../map/CMapIMG.cpp" line="2720"/>
         <location filename="../map/CMapIMG.cpp" line="2728"/>
-        <location filename="../map/CMapIMG.cpp" line="2735"/>
+        <location filename="../map/CMapIMG.cpp" line="2736"/>
+        <location filename="../map/CMapIMG.cpp" line="2743"/>
         <source>Area</source>
         <translation>Surface</translation>
     </message>
@@ -1389,7 +1411,7 @@ Structure inconnue.</translation>
 <context>
     <name>CMouseEditTrk</name>
     <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="47"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="44"/>
         <source><b>Edit Track Points</b><br/>Select a track point for more options.<br/></source>
         <translation><b>Éditer les points de la trace</b><br/>Sélectionner un point de la trace pour voir plus d'options.<br/></translation>
     </message>
@@ -1420,7 +1442,7 @@ Structure inconnue.</translation>
 <context>
     <name>CMouseRangeTrk</name>
     <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="48"/>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="44"/>
         <source><b>Select Range</b><br/>Select first track point. And then a second one.<br/></source>
         <translation><b>Sélectionner une séquence de points</b><br/>Sélectionner le premier point, puis un deuxième.</translation>
     </message>
@@ -1428,7 +1450,7 @@ Structure inconnue.</translation>
 <context>
     <name>CPhotoAlbum</name>
     <message>
-        <location filename="../helpers/CPhotoAlbum.cpp" line="69"/>
+        <location filename="../helpers/CPhotoAlbum.cpp" line="72"/>
         <source>Select images...</source>
         <translation>Sélectionner les images...</translation>
     </message>
@@ -1454,17 +1476,17 @@ Structure inconnue.</translation>
 <context>
     <name>CPlotProfile</name>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="63"/>
+        <location filename="../plot/CPlotProfile.cpp" line="65"/>
         <source>distance [%1]</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="67"/>
+        <location filename="../plot/CPlotProfile.cpp" line="69"/>
         <source>time [h]</source>
         <translation>durée [h]</translation>
     </message>
     <message>
-        <location filename="../plot/CPlotProfile.cpp" line="69"/>
+        <location filename="../plot/CPlotProfile.cpp" line="71"/>
         <source>alt. [%1]</source>
         <translation>Alt. [%1]</translation>
     </message>
@@ -1769,12 +1791,57 @@ n'est pas une définition de système de coordonnées:
         <translation></translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="138"/>
+        <location filename="../IAbout.ui" line="140"/>
+        <source>Rainer Unseld </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="147"/>
+        <source>French</source>
+        <translation type="unfinished">Français</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="154"/>
+        <source>Czech</source>
+        <translation type="unfinished">Tchèque</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="161"/>
+        <source>Pavel Fric</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="168"/>
+        <source>German</source>
+        <translation type="unfinished">Deutsch</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="175"/>
+        <source>Translation:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="182"/>
+        <source>Josef Latt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Spanish</source>
+        <translation type="unfinished">Espagnol</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="196"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
         <source>This software is licensed under GPL3 or any later version</source>
         <translation>Ce logiciel est distribué sous les termes de la licence GPL3 ou toute version utérieure</translation>
     </message>
     <message>
-        <location filename="../IAbout.ui" line="145"/>
+        <location filename="../IAbout.ui" line="219"/>
         <source>© 2014 Oliver Eichler (oliver.eichler at gmx.de)</source>
         <translation></translation>
     </message>
@@ -2051,28 +2118,34 @@ n'est pas une définition de système de coordonnées:
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="83"/>
         <source>Sort By Time</source>
         <translation>Trier par date</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="86"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="70"/>
         <source>Keep Order of Project</source>
         <translation>Conserver l'ordre du projet</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="93"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="99"/>
+        <source>Sort Along Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="127"/>
         <source>Print diary</source>
         <translation>Imprimer le journal</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="96"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="116"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="106"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="150"/>
         <source>...</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="147"/>
         <source>Rebuild diary.</source>
         <translation>Restaurer le journal...</translation>
     </message>
@@ -2683,238 +2756,248 @@ n'est pas une définition de système de coordonnées:
         <translation>Vue</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="92"/>
+        <location filename="../IMainWindow.ui" line="93"/>
         <source>Window</source>
         <translation>Fenêtre</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="97"/>
+        <location filename="../IMainWindow.ui" line="98"/>
         <source>?</source>
         <translation>?</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="104"/>
+        <location filename="../IMainWindow.ui" line="105"/>
         <source>Project</source>
         <translation>Projet</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="114"/>
+        <location filename="../IMainWindow.ui" line="115"/>
         <source>Tool</source>
         <translation>Outils</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="132"/>
+        <location filename="../IMainWindow.ui" line="133"/>
         <source>Maps</source>
         <translation>Cartes</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="169"/>
+        <location filename="../IMainWindow.ui" line="170"/>
         <source>Dig. Elev. Model (DEM)</source>
         <translation type="unfinished">Modèle numérique de terrain (DEM)</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="202"/>
+        <location filename="../IMainWindow.ui" line="203"/>
         <source>Data</source>
         <translation>Données</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="215"/>
-        <location filename="../IMainWindow.ui" line="218"/>
+        <location filename="../IMainWindow.ui" line="216"/>
+        <location filename="../IMainWindow.ui" line="219"/>
         <source>Add Map View</source>
         <translation>Ajouter une vue cartographique</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="221"/>
+        <location filename="../IMainWindow.ui" line="222"/>
         <source>Ctrl+T</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="233"/>
+        <location filename="../IMainWindow.ui" line="234"/>
         <source>Show Scale</source>
         <translation>Afficher l'échelle</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="242"/>
+        <location filename="../IMainWindow.ui" line="243"/>
         <source>Setup Map Font</source>
         <translation>Configurer la police de la carte</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="254"/>
+        <location filename="../IMainWindow.ui" line="255"/>
         <source>Show Grid</source>
         <translation>Afficher la grille</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="257"/>
+        <location filename="../IMainWindow.ui" line="258"/>
         <source>Ctrl+G</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="266"/>
+        <location filename="../IMainWindow.ui" line="267"/>
         <source>Setup Grid</source>
         <translation>Configurer la grille</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="269"/>
+        <location filename="../IMainWindow.ui" line="270"/>
         <source>Ctrl+Alt+G</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="281"/>
+        <location filename="../IMainWindow.ui" line="282"/>
         <source>Flip Mouse Wheel</source>
         <translation>Inverser le sens de la molette de souris</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="290"/>
-        <location filename="../IMainWindow.ui" line="293"/>
+        <location filename="../IMainWindow.ui" line="291"/>
+        <location filename="../IMainWindow.ui" line="294"/>
         <source>Setup Map Paths</source>
         <translation>Configurer les répertoires des cartes</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="305"/>
+        <location filename="../IMainWindow.ui" line="306"/>
         <source>POI Text</source>
         <translation>Libellés des points d'interêt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="317"/>
+        <location filename="../IMainWindow.ui" line="318"/>
         <source>Night / Day</source>
         <translation>Jour / Nuit</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="329"/>
+        <location filename="../IMainWindow.ui" line="330"/>
         <source>Map Tool Tip</source>
         <translation>Infobulles sur la carte</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="338"/>
+        <location filename="../IMainWindow.ui" line="339"/>
         <source>Setup DEM Paths</source>
         <translation>Configurer les répertoires DEM</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="347"/>
+        <location filename="../IMainWindow.ui" line="348"/>
         <source>About</source>
         <translation>À propos</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="356"/>
+        <location filename="../IMainWindow.ui" line="357"/>
         <source>Help</source>
         <translation>Aide</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="365"/>
-        <location filename="../IMainWindow.ui" line="368"/>
+        <location filename="../IMainWindow.ui" line="366"/>
+        <location filename="../IMainWindow.ui" line="369"/>
         <source>Setup Map View</source>
         <translation>Configurer la vue cartographique</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="377"/>
+        <location filename="../IMainWindow.ui" line="378"/>
         <source>Load GIS Data</source>
         <translation>Charger des données SIG...</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="380"/>
+        <location filename="../IMainWindow.ui" line="381"/>
         <source>Load projects from file</source>
         <translation>Charger un fichier projet</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="383"/>
+        <location filename="../IMainWindow.ui" line="384"/>
         <source>Ctrl+L</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="392"/>
+        <location filename="../IMainWindow.ui" line="393"/>
         <source>Save All GIS Data</source>
         <translation>Enregistrer toutes les données SIG</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="395"/>
+        <location filename="../IMainWindow.ui" line="396"/>
         <source>Save all projects in the workspace</source>
         <translation>Enregistrer tous les projets de l'espace de travail</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="398"/>
+        <location filename="../IMainWindow.ui" line="399"/>
         <source>Ctrl+S</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="407"/>
+        <location filename="../IMainWindow.ui" line="408"/>
         <source>Setup Time Zone</source>
         <translation>Configurer le fuseau horaire</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="416"/>
+        <location filename="../IMainWindow.ui" line="417"/>
         <source>Add empty project</source>
         <translation>Ajouter un projet vide</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="428"/>
+        <location filename="../IMainWindow.ui" line="429"/>
         <source>Search Google</source>
         <translation>Recherche Google</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="437"/>
+        <location filename="../IMainWindow.ui" line="438"/>
         <source>Close all projects</source>
         <translation>Fermer tous les projets</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="440"/>
+        <location filename="../IMainWindow.ui" line="441"/>
         <source>F8</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="449"/>
+        <location filename="../IMainWindow.ui" line="450"/>
         <source>Setup Units</source>
         <translation>Configurer les unités</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="458"/>
+        <location filename="../IMainWindow.ui" line="459"/>
         <source>Setup Workspace</source>
         <translation>Configurer l'espace de travail</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="461"/>
+        <location filename="../IMainWindow.ui" line="462"/>
         <source>Setup save on exit.</source>
         <translation>Sauvegarde de la configuration en quittant</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="470"/>
+        <location filename="../IMainWindow.ui" line="471"/>
         <source>Import Database from QLandkarte</source>
         <translation>Importer une base de données QLandkarte</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="473"/>
+        <location filename="../IMainWindow.ui" line="474"/>
         <source>Import QLandkarte GT database</source>
         <translation>Importer une base de données QLandkarte GT</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="482"/>
+        <location filename="../IMainWindow.ui" line="483"/>
         <source>VRT Builder</source>
         <translation>Générateur de VRT</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="485"/>
+        <location filename="../IMainWindow.ui" line="486"/>
         <source>GUI front end to gdalbuildvrt</source>
         <translation>Interface utilisateur pour gdalbuildvrt</translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="494"/>
+        <location filename="../IMainWindow.ui" line="495"/>
         <source>Store Map View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="497"/>
+        <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>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="506"/>
+        <location filename="../IMainWindow.ui" line="507"/>
         <source>Load Map View</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../IMainWindow.ui" line="509"/>
+        <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>
     </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="522"/>
+        <source>Ext. Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="525"/>
+        <source>Ctrl+E</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>IMapList</name>
@@ -3108,17 +3191,17 @@ n'est pas une définition de système de coordonnées:
 <context>
     <name>IPlot</name>
     <message>
-        <location filename="../plot/IPlot.cpp" line="92"/>
+        <location filename="../plot/IPlot.cpp" line="101"/>
         <source>Save...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="482"/>
+        <location filename="../plot/IPlot.cpp" line="500"/>
         <source>No or bad data.</source>
         <translation>Aucune donnée ou données invalides.</translation>
     </message>
     <message>
-        <location filename="../plot/IPlot.cpp" line="875"/>
+        <location filename="../plot/IPlot.cpp" line="1015"/>
         <source>Select output file</source>
         <translation type="unfinished"></translation>
     </message>
@@ -3533,6 +3616,14 @@ or
     </message>
 </context>
 <context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
     <name>ISelectCopyAction</name>
     <message>
         <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
@@ -3925,17 +4016,17 @@ or
     </message>
     <message>
         <location filename="../gis/CGisListDB.cpp" line="408"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="309"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="330"/>
         <source>Delete...</source>
         <translation>Supprimer...</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Delete project...</source>
         <translation>Supprimer le projet</translation>
     </message>
     <message>
-        <location filename="../gis/CGisListWks.cpp" line="896"/>
+        <location filename="../gis/CGisListWks.cpp" line="910"/>
         <source>Do you really want to delete %1?</source>
         <translation>Êtes-vous sûr de vouloir supprimer %1?</translation>
     </message>
@@ -3957,45 +4048,45 @@ or
         <translation>Perdu & Trouvé</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="126"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="208"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="93"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="157"/>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="216"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="94"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="159"/>
         <source>Save GIS data to...</source>
         <translation>Enregistrer les données SIG dans...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Save ...</source>
         <translation>Enregistrer...</translation>
     </message>
     <message>
-        <location filename="../gis/db/CDBProject.cpp" line="158"/>
+        <location filename="../gis/db/CDBProject.cpp" line="161"/>
         <source>Abort save</source>
         <translation>Annuler l'enregistrement</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open...</source>
         <translation>Impossible d'ouvrir...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="93"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="96"/>
         <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="143"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="144"/>
         <source>Failed to open %1</source>
         <translation>Impossible d'ouvrir %1</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Failed to read...</source>
         <translation>Impossible de lire...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="106"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="109"/>
         <source>Failed to read: %1
 line %2, column %3:
  %4</source>
@@ -4004,32 +4095,32 @@ ligne %2, colonne %3:
 %4</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="115"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="118"/>
         <source>Not a GPX file: </source>
         <translation>N'est pas un fichier GPX:</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="283"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="291"/>
         <source>File exists ...</source>
         <translation>Le fichier existe...</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="284"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="292"/>
         <source>The file exists and it has not been created by QMapShack. If you press 'yes' all data in this file will be lost. Even if this file contains GPX data and has been loaded by QMapShack, QMapShack might not be able to load and store all elements of this file.  Those elements will be lost. I recommend to use another file. <b>Do you really want to overwrite the file?</b></source>
         <translation>Le fichier existe et n'a pas été créé par QMapShack. Si vous cliquez sur 'oui' tous les données de ce fichier seront perdues. Même si ce fichier contient des données GPX et sera ouvert par QMapShack certains éléments de ce fichier ne pourront pas être lus ou enregistrés. Ces élements seront perdus. Il est conseillé d'utiliser un autre fichier.<b>Voulez-vous vraiment écraser ce fichier ?</b> </translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="379"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
         <source>Failed to create file '%1'</source>
         <translation>Impossible de créer le fichier: '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="388"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="402"/>
         <source>Failed to write file '%1'</source>
         <translation>Impossible d'écrire le fichier: '%1'</translation>
     </message>
     <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="393"/>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="407"/>
         <source>Saveing GIS data failed...</source>
         <translation>Impossible d'enregistrer les données SIG...</translation>
     </message>
@@ -4064,36 +4155,36 @@ ligne %2, colonne %3:
         <translation>Mode lecture seule</translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="619"/>
+        <location filename="../gis/IGisItem.cpp" line="632"/>
         <source><h4>Comment:</h4></source>
         <translation><h4>Commentaire:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="622"/>
+        <location filename="../gis/IGisItem.cpp" line="635"/>
         <source><p>--- no comment ---</p></source>
         <translation><p>--- pas de commentaire ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="633"/>
-        <location filename="../gis/IGisItem.cpp" line="678"/>
+        <location filename="../gis/IGisItem.cpp" line="618"/>
+        <location filename="../gis/IGisItem.cpp" line="677"/>
         <source><h4>Description:</h4></source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="636"/>
-        <location filename="../gis/IGisItem.cpp" line="681"/>
+        <location filename="../gis/IGisItem.cpp" line="621"/>
+        <location filename="../gis/IGisItem.cpp" line="680"/>
         <source><p>--- no description ---</p></source>
         <translation><p>--- pas de description ---</p></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="647"/>
-        <location filename="../gis/IGisItem.cpp" line="692"/>
+        <location filename="../gis/IGisItem.cpp" line="646"/>
+        <location filename="../gis/IGisItem.cpp" line="691"/>
         <source><h4>Links:</h4></source>
         <translation><h4>Liens:</h4></translation>
     </message>
     <message>
-        <location filename="../gis/IGisItem.cpp" line="650"/>
-        <location filename="../gis/IGisItem.cpp" line="695"/>
+        <location filename="../gis/IGisItem.cpp" line="649"/>
+        <location filename="../gis/IGisItem.cpp" line="694"/>
         <source><p>--- no links ---</p></source>
         <translation><p>--- pas de liens ---</p></translation>
     </message>
@@ -4120,7 +4211,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="164"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="177"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="102"/>
         <source>_Clone</source>
         <translation>_Clone</translation>
@@ -4168,240 +4259,240 @@ 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="1493"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1587"/>
         <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="1505"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1599"/>
         <source>Changed color</source>
         <translation>Couleur modifiée...</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="218"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
         <source><br/>
 Filename: %1</source>
         <translation><br/>
 Nom de fichier: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="235"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="256"/>
         <source>Waypoints: %1</source>
         <translation>Waypoints: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="239"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="260"/>
         <source>Tracks: %1</source>
         <translation>Traces: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="243"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="264"/>
         <source>Routes: %1</source>
         <translation>Routes: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="247"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="268"/>
         <source>Areas: %1</source>
         <translation>Surfaces: %1</translation>
     </message>
     <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="308"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="329"/>
         <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="1481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1575"/>
         <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="1487"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1581"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="370"/>
         <source>Changed description</source>
         <translation>Description modifiée</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Error...</source>
         <translation>Erreur...</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="85"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="189"/>
-        <location filename="../gis/tnv/serialization.cpp" line="292"/>
-        <location filename="../gis/tnv/serialization.cpp" line="360"/>
-        <location filename="../gis/tnv/serialization.cpp" line="549"/>
+        <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"/>
         <source>Failed to open %1.</source>
         <translation>Impossible d'ouvrir %1</translation>
     </message>
     <message>
-        <location filename="../gis/tnv/serialization.cpp" line="389"/>
-        <location filename="../gis/tnv/serialization.cpp" line="400"/>
-        <location filename="../gis/tnv/serialization.cpp" line="577"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <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"/>
         <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="421"/>
-        <location filename="../gis/tnv/serialization.cpp" line="606"/>
-        <location filename="../gis/tnv/serialization.cpp" line="634"/>
-        <location filename="../gis/tnv/serialization.cpp" line="693"/>
+        <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"/>
         <source>Failed to read data.</source>
         <translation>Impossible de lire les données.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="287"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="300"/>
         <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="363"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="376"/>
         <source>Length: %1 %2</source>
         <translation>Longueur: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="370"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="383"/>
         <source>, %1%2 %3, %4%5 %6</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="378"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
         <source>Time: %1</source>
         <translation>Durée: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="381"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="391"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="394"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="404"/>
         <source>, Speed: %1 %2</source>
         <translation>, vitesse %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
         <source>Moving: %1</source>
         <translation>Déplacement: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="397"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="410"/>
         <source>Start: %1</source>
         <translation>Début: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="402"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="415"/>
         <source>End: %1</source>
         <translation>Fin: %1</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="406"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="419"/>
         <source>Points: %1 (%2)</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="478"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
         <source>Ele.: %1 %2</source>
         <translation>Altitude: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="481"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="505"/>
         <source> slope: %1%3 (%2%)</source>
         <translation> Pente: %1%3(%2%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="486"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="510"/>
         <source> speed: %1%2</source>
         <translation> Vitesse: %1 %2</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="498"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="522"/>
         <source>Ascend: %1%2 (%3%)</source>
         <translation>Montée: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="502"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="526"/>
         <source>Ascend: - (-)</source>
         <translation>Montées: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="508"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="532"/>
         <source> Descend: %1%2 (%3%)</source>
         <translation>  Descente: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="512"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="536"/>
         <source> Descend: - (-) </source>
         <translation>Descente: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="519"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="543"/>
         <source>Dist.: %1%2 (%3%)</source>
         <translation>Dist.: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="523"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="547"/>
         <source>Dist.: - (-)</source>
         <translation>Dist.: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="529"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="553"/>
         <source> Moving: %1%2 (%3%)</source>
         <translation>  En mouvement: %1%2 (%3%)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="533"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="557"/>
         <source> Moving: - (-) </source>
         <translation>En mouvement: - (-)</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
+        <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/wpt/CGisItemWpt.cpp" line="190"/>
         <location filename="../mouse/CMouseEditArea.cpp" line="100"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="104"/>
         <source>Edit name...</source>
         <translation>Éditer le nom...</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="946"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="961"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="980"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1039"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1185"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="107"/>
+        <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="../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="1126"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1208"/>
         <source>Hide points.</source>
         <translation>Cacher des points.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1160"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1253"/>
         <source>Show points.</source>
         <translation>Afficher les points.</translation>
     </message>
     <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1475"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1569"/>
         <location filename="../gis/wpt/CGisItemWpt.cpp" line="324"/>
         <source>Changed name</source>
         <translation>Nom modifié</translation>
@@ -4502,18 +4593,18 @@ Nom de fichier: %1</translation>
         <translation>Ajouter une image</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>Warning...</source>
         <translation>Avertissement...</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="464"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="465"/>
         <source>This is a typ file with unknown polygon encoding. Please report!</source>
         <translation>Ceci est un fichier type avec un encodage de polygone inconnu. Veuillez signaler ce problème.</translation>
     </message>
     <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="845"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="846"/>
         <source>This is a typ file with unknown polyline encoding. Please report!</source>
         <translation>Ceci est un fichier type avec un encodage de polyligne inconnu. Veuillez signaler ce problème.</translation>
     </message>
diff --git a/src/map/CMapIMG.cpp b/src/map/CMapIMG.cpp
index 218f8c0..267f660 100644
--- a/src/map/CMapIMG.cpp
+++ b/src/map/CMapIMG.cpp
@@ -135,7 +135,7 @@ CMapIMG::CMapIMG(const QString &filename, CMapDraw *parent)
     , filename(filename)
     , transparent(false)
     , fm(CMainWindow::self().getMapFont())
-    , selectedLanguage(-1)
+    , selectedLanguage(NOIDX)
 {
     qDebug() << "------------------------------";
     qDebug() << "IMG: try to open" << filename;
@@ -2375,15 +2375,14 @@ void CMapIMG::getInfo(const QPoint& px, QString& str)
 void CMapIMG::getToolTip(const QPoint& px, QString& infotext)
 {
     bool first = true;
+    QString str;
+
     QMultiMap<QString, QString> dict;
     getInfoPoints(px, dict);
     getInfoPois(px, dict);
     getInfoPolylines(px, dict);
 
     QList<QString> values = dict.values();
-
-    QString str;
-
     foreach(const QString &value, values)
     {
         if(value == "-")
@@ -2404,7 +2403,9 @@ void CMapIMG::getToolTip(const QPoint& px, QString& infotext)
 
     if(str.isEmpty())
     {
+        dict.clear();
         getInfoPolygons(px, dict);
+        QList<QString> values = dict.values();
         foreach(const QString &value, values)
         {
             if(value == "-")
@@ -2424,7 +2425,14 @@ void CMapIMG::getToolTip(const QPoint& px, QString& infotext)
         }
     }
 
-    infotext += str;
+    if(!infotext.isEmpty() && !str.isEmpty())
+    {
+        infotext += "\n" + str;
+    }
+    else
+    {
+        infotext += str;
+    }
 }
 
 void CMapIMG::getInfoPoints(const QPoint& pt, QMultiMap<QString, QString>& dict)
@@ -2470,7 +2478,7 @@ void CMapIMG::getInfoPoints(const QPoint& pt, QMultiMap<QString, QString>& dict)
             {
                 if(pointProperties.contains(point->type))
                 {
-                    if(selectedLanguage != -1)
+                    if(selectedLanguage != NOIDX)
                     {
                         dict.insert(tr("Point of Interest"),pointProperties[point->type].strings[selectedLanguage]);
                     }
@@ -2533,7 +2541,7 @@ void CMapIMG::getInfoPois(const QPoint& pt, QMultiMap<QString, QString>& dict)
             {
                 if(pointProperties.contains(point->type))
                 {
-                    if(selectedLanguage != -1)
+                    if(selectedLanguage != NOIDX)
                     {
                         dict.insert(tr("Point of Interest"),pointProperties[point->type].strings[selectedLanguage]);
                     }
@@ -2658,7 +2666,7 @@ void CMapIMG::getInfoPolylines(const QPoint &pt, QMultiMap<QString, QString>& di
         return;
     }
 
-    if(selectedLanguage != -1)
+    if(selectedLanguage != NOIDX)
     {
         key =  polylineProperties[type].strings[selectedLanguage];
     }
@@ -2721,7 +2729,7 @@ void CMapIMG::getInfoPolygons(const QPoint& pt, QMultiMap<QString, QString>& dic
                 }
                 else
                 {
-                    if(selectedLanguage != -1)
+                    if(selectedLanguage != NOIDX)
                     {
                         if(polygonProperties[line->type].strings[selectedLanguage].size())
                         {
diff --git a/src/map/CMapJNX.cpp b/src/map/CMapJNX.cpp
index e9b5fea..a01f30f 100644
--- a/src/map/CMapJNX.cpp
+++ b/src/map/CMapJNX.cpp
@@ -262,7 +262,7 @@ void CMapJNX::readFile(const QString& fn, qint32& productId)
 
 qint32 CMapJNX::scale2level(qreal s, const file_t& file)
 {
-    qint32 idxLvl    = -1;
+    qint32 idxLvl    = NOIDX;
     quint32 actScale = scale2jnx(s);
 
     for(int i = 0; i < file.levels.size(); i++)
diff --git a/src/map/CMapTMS.cpp b/src/map/CMapTMS.cpp
index c8fa1f2..e164b16 100644
--- a/src/map/CMapTMS.cpp
+++ b/src/map/CMapTMS.cpp
@@ -53,7 +53,7 @@ inline double tile2lat(int y, int z)
 CMapTMS::CMapTMS(const QString &filename, CMapDraw *parent)
     : IMap(eFeatVisibility|eFeatTileCache, parent)
     , minZoomLevel(1)
-    , maxZoomLevel(18)
+    , maxZoomLevel(21)
     , diskCache(0)
     , lastRequest(false)
 {
@@ -439,13 +439,13 @@ void CMapTMS::draw(IDrawContext::buffer_t& buf)
             continue;
         }
 
-        qint32 z    = 17;
+        qint32 z    = 20;
         QPointF s1  = buf.scale * buf.zoomFactor;
         qreal d     = NOFLOAT;
 
-        for(qint32 i = layer.minZoomLevel; i < 18; i++)
+        for(qint32 i = layer.minZoomLevel; i < 21; i++)
         {
-            qreal s2 = 0.6 * (1<<i);
+            qreal s2 = 0.055 * (1<<i);
             if(qAbs(s2 - s1.x()) < d)
             {
                 z = i;
@@ -458,7 +458,7 @@ void CMapTMS::draw(IDrawContext::buffer_t& buf)
             continue;
         }
 
-        z = 18 - z;
+        z = 21 - z;
 
 
         qint32 row1, row2, col1, col2;
diff --git a/src/map/garmin/CGarminTyp.cpp b/src/map/garmin/CGarminTyp.cpp
index 2fa5fb1..3aeea72 100644
--- a/src/map/garmin/CGarminTyp.cpp
+++ b/src/map/garmin/CGarminTyp.cpp
@@ -21,6 +21,7 @@
 
 #include "CMainWindow.h"
 #include "map/garmin/CGarminTyp.h"
+#include "units/IUnit.h"
 #include <QMessageBox>
 #include <QtCore>
 
@@ -177,7 +178,7 @@ bool CGarminTyp::parseDrawOrder(QDataStream& in, QList<quint32>& drawOrder)
             qDebug() << QString("Type 0x%1 is priority %2").arg(typ,0,16).arg(count);
 #endif
             int idx = drawOrder.indexOf(typ);
-            if(idx != -1)
+            if(idx != NOIDX)
             {
                 drawOrder.move(idx,0);
             }
diff --git a/src/mouse/CMouseEditArea.cpp b/src/mouse/CMouseEditArea.cpp
index ffb2530..777a711 100644
--- a/src/mouse/CMouseEditArea.cpp
+++ b/src/mouse/CMouseEditArea.cpp
@@ -104,7 +104,7 @@ void CMouseEditArea::slotCopyToNew()
         return;
     }
 
-    new CGisItemOvlArea(coords1,name, project, -1);
+    new CGisItemOvlArea(coords1,name, project, NOIDX);
 
     canvas->resetMouse();
     canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
diff --git a/src/mouse/CMouseEditTrk.cpp b/src/mouse/CMouseEditTrk.cpp
index aa1b81a..c90662d 100644
--- a/src/mouse/CMouseEditTrk.cpp
+++ b/src/mouse/CMouseEditTrk.cpp
@@ -39,10 +39,7 @@ CMouseEditTrk::CMouseEditTrk(CGisItemTrk &trk, CGisDraw * gis, CCanvas * parent)
     // reset any focus the track might have.
     trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
     trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick);
-    if(trk.hasUserFocus())
-    {
-        trk.gainUserFocus(false);
-    }
+    trk.looseUserFocus();
 
     canvas->reportStatus(key.item, tr("<b>Edit Track Points</b><br/>Select a track point for more options.<br/>"));
     /*
@@ -111,7 +108,7 @@ void CMouseEditTrk::slotCopyToNew()
         return;
     }
 
-    new CGisItemTrk(coords1,name, project, -1);
+    new CGisItemTrk(coords1,name, project, NOIDX);
 
     canvas->resetMouse();
     canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
diff --git a/src/mouse/CMouseRangeTrk.cpp b/src/mouse/CMouseRangeTrk.cpp
index 77c59bf..1173f9f 100644
--- a/src/mouse/CMouseRangeTrk.cpp
+++ b/src/mouse/CMouseRangeTrk.cpp
@@ -37,10 +37,6 @@ CMouseRangeTrk::CMouseRangeTrk(CGisItemTrk &trk, CGisDraw *gis, CCanvas *parent)
     // reset user focus if the track has it
     trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove);
     trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick);
-    if(trk.hasUserFocus())
-    {
-        trk.gainUserFocus(false);
-    }
 
     // switch to full mode to show deleted (hidden) track points, too
     trk.setDrawMode(CGisItemTrk::eDrawRange);
@@ -187,7 +183,7 @@ void CMouseRangeTrk::mouseMoveEvent(QMouseEvent * e)
         CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWidget::self().getItemByKey(key));
         if(trk != 0)
         {
-            anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick);
+            anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove);
             canvas->update();
         }
         break;
diff --git a/src/mouse/IMouseEditLine.cpp b/src/mouse/IMouseEditLine.cpp
index b5d396d..0fbe114 100644
--- a/src/mouse/IMouseEditLine.cpp
+++ b/src/mouse/IMouseEditLine.cpp
@@ -34,8 +34,8 @@ IMouseEditLine::IMouseEditLine(const QPointF& point, CGisDraw * gis, CCanvas * p
     : IMouse(gis, parent)
     , state(eStateAddPointFwd)
     , idxFocus(0)
-    , idxStart(-1)
-    , idxStop(-1)
+    , idxStart(NOIDX)
+    , idxStop(NOIDX)
 {
     // create a single point line
     coords1 << point;
@@ -55,9 +55,9 @@ IMouseEditLine::IMouseEditLine(const QPointF& point, CGisDraw * gis, CCanvas * p
 IMouseEditLine::IMouseEditLine(IGisLine &src, CGisDraw *gis, CCanvas *parent)
     : IMouse(gis, parent)
     , state(eStateIdle)
-    , idxFocus(-1)
-    , idxStart(-1)
-    , idxStop(-1)
+    , idxFocus(NOIDX)
+    , idxStart(NOIDX)
+    , idxStop(NOIDX)
 {
     src.getPolylineFromData(coords1);
     // calculate a pixel polyline from track coordinates
@@ -320,14 +320,14 @@ void IMouseEditLine::mousePressEvent(QMouseEvent * e)
             delete scrOptRange;
 
             state       = eStateIdle;
-            idxFocus    = -1;
-            idxStart    = -1;
-            idxStop     = -1;
+            idxFocus    = NOIDX;
+            idxStart    = NOIDX;
+            idxStop     = NOIDX;
             break;
 
         case eStateMovePoint:
             state       = eStateIdle;
-            idxFocus    = -1;
+            idxFocus    = NOIDX;
             coords1     = save;
             line        = coords1;
             gis->convertRad2Px(line);
@@ -358,9 +358,9 @@ void IMouseEditLine::mousePressEvent(QMouseEvent * e)
             }
 
             state       = eStateIdle;
-            idxFocus    = -1;
-            idxStart    = -1;
-            idxStop     = -1;
+            idxFocus    = NOIDX;
+            idxStart    = NOIDX;
+            idxStop     = NOIDX;
 
             cursor  = cursor1;
             QApplication::restoreOverrideCursor();
@@ -372,9 +372,9 @@ void IMouseEditLine::mousePressEvent(QMouseEvent * e)
             delete scrOptRange;
 
             state       = eStateIdle;
-            idxFocus    = -1;
-            idxStart    = -1;
-            idxStop     = -1;
+            idxFocus    = NOIDX;
+            idxStart    = NOIDX;
+            idxStop     = NOIDX;
         }
     }
     else if(e->button() == Qt::LeftButton)
@@ -547,9 +547,9 @@ void IMouseEditLine::mousePressEvent(QMouseEvent * e)
             delete scrOptRange;
 
             state       = eStateIdle;
-            idxFocus    = -1;
-            idxStart    = -1;
-            idxStop     = -1;
+            idxFocus    = NOIDX;
+            idxStart    = NOIDX;
+            idxStop     = NOIDX;
         }
         }
     }
@@ -698,8 +698,8 @@ void IMouseEditLine::wheelEvent(QWheelEvent * e)
 int IMouseEditLine::getPointCloseBy(const QPoint& screenPos)
 {
     qint32 i    = 0;
-    qint32 idx  = -1;
-    qint32 d   = NOINT;
+    qint32 idx  = NOIDX;
+    qint32 d    = NOINT;
     foreach(const QPointF &point, line)
     {
         int tmp = (screenPos - point).manhattanLength();
@@ -713,7 +713,7 @@ int IMouseEditLine::getPointCloseBy(const QPoint& screenPos)
 
     if(d > 40)
     {
-        idx = -1;
+        idx = NOIDX;
     }
 
     return idx;
@@ -730,7 +730,7 @@ void IMouseEditLine::slotDeletePoint()
     coords1.remove(idxFocus);
     line.remove(idxFocus);
 
-    idxFocus  = -1;
+    idxFocus    = NOIDX;
     state       = eStateIdle;
 
     canvas->update();
@@ -768,9 +768,9 @@ void IMouseEditLine::slotDeleteRange()
     gis->convertRad2Px(line);
 
     state = eStateIdle;
-    idxFocus  = -1;
-    idxStart    = -1;
-    idxStop     = -1;
+    idxFocus    = NOIDX;
+    idxStart    = NOIDX;
+    idxStop     = NOIDX;
 
     canvas->update();
 }
diff --git a/src/plot/CPlotAxis.h b/src/plot/CPlotAxis.h
index 3f3a9a5..65b3ab3 100644
--- a/src/plot/CPlotAxis.h
+++ b/src/plot/CPlotAxis.h
@@ -73,7 +73,7 @@ public:
     /// get the total limits and the used ones
     virtual void getLimits(qreal& limMin, qreal& limMax, qreal& useMin, qreal& useMax);
 
-    inline int val2pt( qreal val )
+    inline int val2pt( qreal val ) const
     {
         if ( scale == 0 )
         {
@@ -82,7 +82,7 @@ public:
         return ( int ) ( ( val - usedMin ) * scale + 0.5 );
     }
 
-    inline qreal pt2val( int pt )
+    inline qreal pt2val( int pt ) const
     {
         if ( scale == 0 )
         {
diff --git a/src/plot/CPlotData.h b/src/plot/CPlotData.h
index 3b921bb..2b87c00 100644
--- a/src/plot/CPlotData.h
+++ b/src/plot/CPlotData.h
@@ -65,8 +65,6 @@ public:
 
     /// list of plot lines
     QList<line_t> lines;
-    /// marks on line1
-    line_t marks;
 
     struct point_t
     {
diff --git a/src/plot/CPlotDistance.cpp b/src/plot/CPlotDistance.cpp
index cceaf38..feafa04 100644
--- a/src/plot/CPlotDistance.cpp
+++ b/src/plot/CPlotDistance.cpp
@@ -99,9 +99,9 @@ void CPlotDistance::updateData()
     resetZoom();
 }
 
-void CPlotDistance::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
+void CPlotDistance::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t *ptMove)
 {
-    if(pt == 0)
+    if(ptMove == 0)
     {
         if(posMouse != NOPOINT)
         {
@@ -116,8 +116,9 @@ void CPlotDistance::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
             needsRedraw = true;
         }
 
-        posMouse.rx() = left  + data->x().val2pt(pt->time.toTime_t());
-        posMouse.ry() = top  +  data->y().val2pt(pt->distance);
+        posMouse.rx() = left  + data->x().val2pt(ptMove->time.toTime_t());
+        posMouse.ry() = top  +  data->y().val2pt(ptMove->distance);
     }
+
     update();
 }
diff --git a/src/plot/CPlotDistance.h b/src/plot/CPlotDistance.h
index ca6464f..b9f360e 100644
--- a/src/plot/CPlotDistance.h
+++ b/src/plot/CPlotDistance.h
@@ -30,7 +30,7 @@ public:
 
     void setTrack(CGisItemTrk * track);
     void updateData();
-    void setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt);
+    void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
 };
 
 #endif //CPLOTDISTANCE_H
diff --git a/src/plot/CPlotProfile.cpp b/src/plot/CPlotProfile.cpp
index f500363..0396062 100644
--- a/src/plot/CPlotProfile.cpp
+++ b/src/plot/CPlotProfile.cpp
@@ -18,6 +18,7 @@
 
 #include "CMainWindow.h"
 #include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
 #include "plot/CPlotAxis.h"
 #include "plot/CPlotProfile.h"
 #include "units/IUnit.h"
@@ -32,6 +33,7 @@ CPlotProfile::CPlotProfile(QWidget * parent)
 CPlotProfile::CPlotProfile(CGisItemTrk *trk, mode_e mode, QWidget *parent)
     : IPlot(trk, CPlotData::eAxisLinear, mode, parent)
 {
+    setWindowTitle(trk->getNameEx());
     updateData();
 }
 
@@ -69,10 +71,15 @@ void CPlotProfile::updateData()
         setYLabel(tr("alt. [%1]").arg(IUnit::self().baseunit));
     }
 
+
+    clear();
+
     QPolygonF lineEle;
     QPolygonF lineDem;
     QPolygonF coords;
 
+    IGisProject * project = dynamic_cast<IGisProject*>(trk->parent());
+
     qreal basefactor = IUnit::self().basefactor;
     const CGisItemTrk::trk_t& t = trk->getTrackData();
     foreach (const CGisItemTrk::trkseg_t& seg, t.segs)
@@ -84,18 +91,34 @@ void CPlotProfile::updateData()
                 continue;
             }
 
-            if(trkpt.ele != NOINT)
+            if(trkpt.ele == NOINT)
             {
-                lineEle << QPointF(type == CPlotData::eAxisLinear ? trkpt.distance : (qreal)trkpt.time.toTime_t(), trkpt.ele * basefactor);
-                coords << QPointF(trkpt.lon * DEG_TO_RAD, trkpt.lat * DEG_TO_RAD);
-                lineDem << QPointF(type == CPlotData::eAxisLinear ? trkpt.distance : (qreal)trkpt.time.toTime_t(), NOFLOAT);
+                continue;
+            }
+
+            lineEle << QPointF(type == CPlotData::eAxisLinear ? trkpt.distance : (qreal)trkpt.time.toTime_t(), trkpt.ele * basefactor);
+            coords << QPointF(trkpt.lon * DEG_TO_RAD, trkpt.lat * DEG_TO_RAD);
+            lineDem << QPointF(type == CPlotData::eAxisLinear ? trkpt.distance : (qreal)trkpt.time.toTime_t(), NOFLOAT);
+
+            if(project == 0 || trkpt.keyWpt.item.isEmpty() || (mode == eModeIcon))
+            {
+                continue;
+            }
+
+            CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(project->getItemByKey(trkpt.keyWpt));
+            if(wpt)
+            {
+                CPlotData::point_t tag;
+                tag.point = lineEle.last();
+                tag.icon  = wpt->getIcon();
+                tag.label = wpt->getName();
+                data->tags << tag;
             }
         }
     }
 
     CMainWindow::self().getEelevationAt(coords, lineDem);
 
-    clear();
     newLine(lineEle, "GPS");
     if(!lineDem.isEmpty())
     {
@@ -105,9 +128,9 @@ void CPlotProfile::updateData()
     resetZoom();
 }
 
-void CPlotProfile::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
+void CPlotProfile::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t *ptMove)
 {
-    if(pt == 0)
+    if(ptMove == 0)
     {
         if(posMouse != NOPOINT)
         {
@@ -122,8 +145,42 @@ void CPlotProfile::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
             needsRedraw = true;
         }
 
-        posMouse.rx() = left  + data->x().val2pt(pt->distance);
-        posMouse.ry() = top  +  data->y().val2pt(pt->ele);
+        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;
+        }
     }
     update();
 }
diff --git a/src/plot/CPlotProfile.h b/src/plot/CPlotProfile.h
index f9f45cc..46aba9b 100644
--- a/src/plot/CPlotProfile.h
+++ b/src/plot/CPlotProfile.h
@@ -32,7 +32,7 @@ public:
 
     void setTrack(CGisItemTrk * track);
     void updateData();
-    void setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt);
+    void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
 };
 
 #endif //CPLOTPROFILE_H
diff --git a/src/plot/CPlotSpeed.cpp b/src/plot/CPlotSpeed.cpp
index 9347aec..9395836 100644
--- a/src/plot/CPlotSpeed.cpp
+++ b/src/plot/CPlotSpeed.cpp
@@ -98,9 +98,9 @@ void CPlotSpeed::updateData()
     resetZoom();
 }
 
-void CPlotSpeed::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
+void CPlotSpeed::setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t *ptMove)
 {
-    if(pt == 0)
+    if(ptMove == 0)
     {
         if(posMouse != NOPOINT)
         {
@@ -115,8 +115,8 @@ void CPlotSpeed::setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt)
             needsRedraw = true;
         }
 
-        posMouse.rx() = left  + data->x().val2pt(pt->distance);
-        posMouse.ry() = top  +  data->y().val2pt(pt->speed);
+        posMouse.rx() = left  + data->x().val2pt(ptMove->distance);
+        posMouse.ry() = top  +  data->y().val2pt(ptMove->speed);
     }
     update();
 }
diff --git a/src/plot/CPlotSpeed.h b/src/plot/CPlotSpeed.h
index a932294..58bdc27 100644
--- a/src/plot/CPlotSpeed.h
+++ b/src/plot/CPlotSpeed.h
@@ -30,7 +30,7 @@ public:
 
     void setTrack(CGisItemTrk * track);
     void updateData();
-    void setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt);
+    void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove);
 };
 
 #endif //CPLOTSPEED_H
diff --git a/src/plot/CPlotTrack.cpp b/src/plot/CPlotTrack.cpp
index fa75f3d..7435ac4 100644
--- a/src/plot/CPlotTrack.cpp
+++ b/src/plot/CPlotTrack.cpp
@@ -38,7 +38,7 @@ CPlotTrack::~CPlotTrack()
 {
 }
 
-void CPlotTrack::setMouseMoveFocus(qreal lon, qreal lat)
+void CPlotTrack::setMouseFocus(qreal lon, qreal lat)
 {
     pos.rx() = lon * DEG_TO_RAD;
     pos.ry() = lat * DEG_TO_RAD;
diff --git a/src/plot/CPlotTrack.h b/src/plot/CPlotTrack.h
index 5416419..0e7f703 100644
--- a/src/plot/CPlotTrack.h
+++ b/src/plot/CPlotTrack.h
@@ -31,7 +31,7 @@ public:
     CPlotTrack(CGisItemTrk * trk, QWidget * parent);
     virtual ~CPlotTrack();
 
-    void setMouseMoveFocus(qreal lon, qreal lat);
+    void setMouseFocus(qreal lon, qreal lat);
 
 protected:
     void resizeEvent(QResizeEvent * e);
diff --git a/src/plot/IPlot.cpp b/src/plot/IPlot.cpp
index fff1b03..74263bf 100644
--- a/src/plot/IPlot.cpp
+++ b/src/plot/IPlot.cpp
@@ -21,6 +21,7 @@
 
 #include "CMainWindow.h"
 #include "canvas/CCanvas.h"
+#include "gis/CGisWidget.h"
 #include "helpers/CSettings.h"
 
 #include <QtWidgets>
@@ -30,7 +31,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::green,3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
+    , QPen(Qt::darkYellow,3,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
 };
 
 QPen IPlot::pensThin[] =
@@ -46,7 +47,7 @@ QColor IPlot::colors[] =
     QColor(Qt::blue)
     , QColor(0,0,0,0)
     , QColor(0,0,0,0)
-    , QColor(0,0,0,0)
+    , QColor(Qt::darkGreen)
 };
 
 
@@ -70,6 +71,8 @@ IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget
     , fontHeight(0)
     , scaleWidthX1(0)
     , scaleWidthY1(0)
+    , idxSel1(NOIDX)
+    , idxSel2(NOIDX)
 
 {
     setContextMenuPolicy(Qt::CustomContextMenu);
@@ -88,6 +91,12 @@ IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget
         thinLine = true;
     }
 
+    if(mode == eModeWindow)
+    {
+        overrideWindowFlags(Qt::Window);
+        setAttribute(Qt::WA_DeleteOnClose, true);
+    }
+
     menu = new QMenu(this);
     actionPrint = menu->addAction(QIcon("://icons/32x32/Save.png"), tr("Save..."), this, SLOT(slotSave()));
 
@@ -99,13 +108,21 @@ IPlot::~IPlot()
     if(trk)
     {
         trk->unregisterPlot(this);
+        if(mode == eModeWindow)
+        {
+            trk->looseUserFocus();
+            CCanvas * canvas = dynamic_cast<CCanvas*>(parent());
+            if(canvas)
+            {
+                canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+            }
+        }
     }
 }
 
 void IPlot::clear()
 {
     data->lines.clear();
-    data->marks.points.clear();
     data->tags.clear();
     data->badData = true;
     update();
@@ -357,8 +374,7 @@ void IPlot::setLRTB()
     top = 0;
     if(!data->tags.isEmpty())
     {
-        top += fontHeight;
-        top += 16;
+        top += 9;
     }
     top += deadAreaY;
 
@@ -375,11 +391,6 @@ void IPlot::setLRTB()
     {
         bottom -= deadAreaY;
     }
-
-    if(!data->tags.isEmpty() /*&& CResources::self().showTrackProfileEleInfo()*/)
-    {
-        bottom -= fontHeight;
-    }
 }
 
 
@@ -400,10 +411,6 @@ void IPlot::setSizeXLabel()
         rectX1Label.setWidth( right - left );
         rectX1Label.setHeight( fontHeight );
         y = ( size().height() - rectX1Label.height()) - deadAreaY;
-        if(!data->tags.isEmpty() /*&& CResources::self().showTrackProfileEleInfo()*/)
-        {
-            y -= fontHeight;
-        }
 
         rectX1Label.moveTopLeft( QPoint( left, y ) );
     }
@@ -476,6 +483,17 @@ 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())
     {
@@ -484,7 +502,7 @@ void IPlot::draw()
     }
 
     p.setFont(CMainWindow::self().getMapFont());
-//    drawTags(p);
+    drawTags(p);
     p.setClipping(true);
     p.setClipRect(rectGraphArea);
     drawData(p);
@@ -567,6 +585,7 @@ void IPlot::drawData(QPainter& p)
     }
 }
 
+
 void IPlot::drawLabels( QPainter &p )
 {
     p.setPen(Qt::darkBlue);
@@ -847,8 +866,129 @@ void IPlot::drawDecoration( QPainter &p )
 {
     if(posMouse != NOPOINT)
     {
+        int x = posMouse.x();
         p.setPen(QPen(Qt::red,2));
-        p.drawLine(posMouse.x(), top, posMouse.x(), bottom);
+        p.drawLine(x, top, x, bottom);
+
+        foreach(const CPlotData::point_t& tag, data->tags)
+        {
+            int ptx = left + data->x().val2pt( tag.point.x() );
+
+            if(qAbs(x - ptx) < 10)
+            {
+                QFont f = CMainWindow::self().getMapFont();
+                f.setBold(true);
+                QFontMetrics fm(f);
+                QRect r = fm.boundingRect(tag.label);
+                r.moveCenter(QPoint(ptx, top - fm.height()/2 - fm.descent()));
+                r.adjust(-3,-2,3,0);
+
+                p.setPen(Qt::NoPen);
+                p.setBrush(Qt::white);
+                p.drawRoundedRect(r,3,3);
+
+                p.setFont(f);
+                p.setPen(Qt::darkBlue);
+                p.drawText(r, Qt::AlignCenter, tag.label);
+
+                break;
+            }
+        }
+    }
+
+//    if((idxSel1 != NOIDX) && (idxSel2 != NOIDX) && !data->badData)
+//    {
+//        int penIdx = 3;
+//        int ptx, pty, oldPtx;
+
+
+//        QPolygonF background;
+//        QPolygonF foreground;
+
+//        CPlotAxis& xaxis = data->x();
+//        CPlotAxis& yaxis = data->y();
+
+//        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() );
+//        oldPtx = ptx;
+
+//        background << QPointF(ptx,bottom);
+//        background << QPointF(ptx,pty);
+
+//        foreground << QPointF(ptx,pty);
+
+//        while(point != polyline.end())
+//        {
+//            ptx = left   + xaxis.val2pt( point->x() );
+//            pty = bottom - yaxis.val2pt( point->y() );
+
+//            if(oldPtx == ptx)
+//            {
+//                ++point;
+//                continue;
+//            }
+//            oldPtx = ptx;
+
+//            if(ptx >= left && ptx <= right)
+//            {
+//                background << QPointF(ptx,pty);
+//                foreground << QPointF(ptx,pty);
+//            }
+//            ++point;
+//        }
+
+//        background << QPointF(ptx,pty);
+//        background << QPointF(ptx,bottom);
+
+//        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);
+//    }
+}
+
+void IPlot::drawTags(QPainter& p)
+{
+    if(data->tags.isEmpty())
+    {
+        return;
+    }
+
+    int ptx, pty;
+    CPlotAxis& xaxis = data->x();
+    CPlotAxis& yaxis = data->y();
+
+    QVector<CPlotData::point_t>::const_iterator tag = data->tags.begin();
+    while(tag != data->tags.end())
+    {
+        ptx = left   + xaxis.val2pt( tag->point.x() );
+        pty = bottom - yaxis.val2pt( tag->point.y() );
+
+        if (left < ptx &&  ptx < right)
+        {
+            QPixmap icon = tag->icon.scaled(10,10, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
+            p.drawPixmap(ptx - icon.width() / 2, 2, icon);
+
+            p.setPen(QPen(Qt::white, 3));
+            if( 9 < pty)
+            {
+                if (pty > bottom)
+                {
+                    pty = bottom;
+                }
+
+                p.drawLine(ptx, top, ptx, pty);
+                p.setPen(QPen(Qt::black, 1));
+                p.drawLine(ptx, top, ptx, pty);
+            }
+        }
+        ++tag;
     }
 }
 
diff --git a/src/plot/IPlot.h b/src/plot/IPlot.h
index 69629f8..008af78 100644
--- a/src/plot/IPlot.h
+++ b/src/plot/IPlot.h
@@ -29,13 +29,13 @@ class IPlot : public QWidget
 {
     Q_OBJECT
 public:
-    enum mode_e {eModeNormal, eModeIcon};
+    enum mode_e {eModeNormal, eModeIcon, eModeWindow};
 
     IPlot(CGisItemTrk * trk, CPlotData::axistype_e type, mode_e mode, QWidget * parent);
     virtual ~IPlot();
 
     virtual void updateData() = 0;
-    virtual void setMouseMoveFocus(const CGisItemTrk::trkpt_t * pt) = 0;
+    virtual void setMouseFocus(const CGisItemTrk::trkpt_t * ptClick, const CGisItemTrk::trkpt_t * ptMove) = 0;
 
     void save(QImage& image);
     void setSolid(bool yes)
@@ -84,6 +84,7 @@ protected:
     void drawYTic( QPainter &p );
     void drawLegend(QPainter& p);
     void drawDecoration( QPainter &p );
+    void drawTags(QPainter& p);
 
     // different draw modes
     mode_e mode;
@@ -136,6 +137,9 @@ protected:
 
     QMenu * menu;
     QAction * actionPrint;
+
+    qint32 idxSel1;
+    qint32 idxSel2;
 };
 
 #endif //IPLOT_H
diff --git a/src/qlgt/converter.cpp b/src/qlgt/converter.cpp
index 571ef93..83a0c40 100644
--- a/src/qlgt/converter.cpp
+++ b/src/qlgt/converter.cpp
@@ -47,7 +47,7 @@ CDBProject::CDBProject(CQlgtFolder& folder)
 }
 
 CGisItemWpt::CGisItemWpt(const CQlgtWpt& wpt1)
-    : IGisItem(0, eTypeWpt, -1)
+    : IGisItem(0, eTypeWpt, NOIDX)
 {
     qreal direction;
     QDateTime time = QDateTime::fromTime_t(wpt1.timestamp,QTimeZone("UTC"));
@@ -134,7 +134,7 @@ CGisItemWpt::CGisItemWpt(const CQlgtWpt& wpt1)
 
 
 CGisItemTrk::CGisItemTrk(const CQlgtTrack &trk1)
-    : IGisItem(0, eTypeTrk, -1)
+    : IGisItem(0, eTypeTrk, NOIDX)
 {
     trk.name        = trk1.name;
     trk.cmt         = trk1.comment;
@@ -210,7 +210,7 @@ CGisItemTrk::CGisItemTrk(const CQlgtTrack &trk1)
 
 
 CGisItemOvlArea::CGisItemOvlArea(const IQlgtOverlay& ovl)
-    : IGisItem(0, eTypeOvl, -1)
+    : IGisItem(0, eTypeOvl, NOIDX)
 {
     area.name       = ovl.name;
     area.cmt        = ovl.comment;
@@ -238,7 +238,7 @@ CGisItemOvlArea::CGisItemOvlArea(const IQlgtOverlay& ovl)
 
 
 CGisItemRte::CGisItemRte(const CQlgtRoute& rte1)
-    : IGisItem(0, eTypeRte, -1)
+    : IGisItem(0, eTypeRte, NOIDX)
 {
     rte.name        = rte1.name;
     rte.cmt         = rte1.comment;
diff --git a/src/resources.qrc b/src/resources.qrc
index 86faf16..065fa75 100644
--- a/src/resources.qrc
+++ b/src/resources.qrc
@@ -138,6 +138,7 @@
         <file>icons/32x32/SaveView.png</file>
         <file>icons/32x32/LoadView.png</file>
         <file>icons/32x32/Save.png</file>
+        <file>icons/32x32/ProfileToWindow.png</file>
 
         <file>icons/48x48/2DFix.png</file>
         <file>icons/48x48/3DFix.png</file>
@@ -258,6 +259,7 @@
         <file>icons/48x48/SaveView.png</file>
         <file>icons/48x48/LoadView.png</file>
         <file>icons/48x48/Save.png</file>
+        <file>icons/48x48/ProfileToWindow.png</file>
 
         <file>icons/cache/32x32/bluepin.png</file>
         <file>icons/cache/32x32/cito.png</file>
diff --git a/src/units/IUnit.cpp b/src/units/IUnit.cpp
index 67b2f3e..8daa8fb 100644
--- a/src/units/IUnit.cpp
+++ b/src/units/IUnit.cpp
@@ -510,7 +510,7 @@ QDateTime IUnit::parseTimestamp(const QString &timetext, int& tzoffset)
     QString format = "yyyy-MM-dd'T'hh:mm:ss";
 
     i = timetext.indexOf(".");
-    if (i != -1)
+    if (i != NOIDX)
     {
         if(timetext[i+1] == '0')
         {
@@ -523,11 +523,11 @@ QDateTime IUnit::parseTimestamp(const QString &timetext, int& tzoffset)
     }
 
     // trailing "Z" explicitly declares the timestamp to be UTC
-    if (timetext.indexOf("Z") != -1)
+    if (timetext.indexOf("Z") != NOIDX)
     {
         format += "'Z'";
     }
-    else if ((i = tzRE.indexIn(timetext)) != -1)
+    else if ((i = tzRE.indexIn(timetext)) != NOIDX)
     {
         // trailing timezone offset [-+]HH:MM present
         // This does not match the original intentions of the GPX
diff --git a/src/units/IUnit.h b/src/units/IUnit.h
index b4d9fdf..93477ea 100644
--- a/src/units/IUnit.h
+++ b/src/units/IUnit.h
@@ -25,6 +25,7 @@
 #define NOFLOAT 1000000000000.0
 #define NOINT   0x7FFFFFFF
 #define NOTIME  0xFFFFFFFF
+#define NOIDX   (-1)
 
 extern const QPointF NOPOINTF;
 extern const QPoint NOPOINT;

-- 
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